1创建 mongo服务(win10系统)
- 1.下载mongodb解压到本地
-
- 创建存放数据的data和存放日志的log文件
-
3.安装mongo服务(一定要在管理员的模式下运行dos命令)
mongod --install --dbpath d:\Mongodb\data --logpath d:\Mongodb\logs\mongodb.log
复制代码
- 4运行不报错,并且在服务中查看MongoDB服务已经已经存在
- 5启动/停止mongodb服务
net start mongodb / net stop mongodb
复制代码
- 6校验,dos中输入mongo就进入到数据库中,并且操作数据库
mongo
复制代码
说明:这种创建的数据库是是没有带权限的
安装带权限的
- 安装指令
mongod --install --dbpath d:\Mongodb\data --logpath d:\Mongodb\logs\mongodb.log --auth
复制代码
2.当你设置带权限的时候,你发现原来的数据库你访问不到了 输入 show dbs没东西出来,或者 use admin 中show collections 是无权限访问的
3.设置一个用户的角色,在mongodb中有个 admin的数据库,在admin 中设置一个超级管理员 账号和密码等
use admin
db.createUser({
"user":"test",
"pwd":"test1234",
"roles":[
{
"role":"root",
"db":"admin"
}
]
})
复制代码
4.登录超级管理管理员账号,登录完后此时show dbs就可以访问到数据库
use admin
db.auth('账号',密码)
复制代码
5.创建test数据库 (切换到不存在的数据库不会报错,会隐式创建一个test库),创建一个test账号对test库可以读写的,这里的创建是在node连接数据库时需要操作的那个库
use test
db.createUser(
{
user: "test",
pwd: "test123",
roles: [ { role: "readWrite", db: "test" } ]
}
)
复制代码
6 可视化工具操作,连接数据库,这里输入超管的账号和密码
连接本地guanwang数据库
const mongoose=require('mongoose');
const connectDB=async()=>{
mongoose.connect(
"mongodb://chenhui:chenhui@localhost:27017/guanwang",
{
useNewUrlParser:true,
useUnifiedTopology:true,
useCreateIndex:true,
useFindAndModify:false
},err=>{
if(err){
console.log('----------------')
console.log('数据库连接失败',err)
console.log('----------------')
}else{
console.log('数据库连接成功')
}
});
}
module.exports=connectDB
复制代码
用node的express做服务,并且使用monogoose操作mongoDB数据库
const express = require('express')
const dotenv = require('dotenv')
const router=require('./routes/router.js')
const connectDB=require('./config/db')
dotenv.config({ //按需加载不同的环境变量
path:'./config/config.env'
})
connectDB() // 连接本地数据库
const app=express();
const PORT=process.env.PORT||3000;
app.use(express.json())
app.use('/api',router)
app.listen(PORT,console.log(`server running ${process.env.PORT}`))
复制代码
路由模块 这里只做了根路径的(获取数据和保存数据)
const express=require('express');
//创建路由容器
const router = express.Router();
const {commonResGet,commonResPost}=require('../controllers')
//主页
//http://1ocalhost:5000/api
router.route('/').get(commonResGet).post(commonResPost);;
module.exports=router;
复制代码
controllers 中用数据模型去查找数据库中的数据,或者保存数据到数据库中
const homeListModel=require('../models/homeList')
exports.commonResGet=async (req,res,nex)=>{
let json=await homeListModel.find();
res.status(200).json({success:true,msg:'成功',data:json})
}
exports.commonResPost=async (req,res,nex)=>{
const params=await homeListModel.create(req.body);
res.status(200).json({success:true,data:params,msg:'创建成功'})
}
复制代码
数据模型
const mongoose =require('mongoose');
const homeListModel=new mongoose.Schema({
type:String,
url:String,
classify:String
})
module.exports=mongoose.model('homeListModel',homeListModel)
复制代码
当执行存储数据时,本地数据库guanwang中自动新增一张名字为homeListModel的表
此时post 创建数据每次成功插入一条数据,数据库中都会更新
获取数据
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END