MongoDB数据库的连接与增删改查
Express+Mongodb的安装细节 可见https://blog.csdn.net/qq_44429079/article/details/109739293
- 首先创建一个express项目
目录如下: - 创建model文件夹,在此文件夹下创建一个index.js 用于进行数据库的连接操作
- 创建schema,对集合进行约束
- 创建model,这样才能进行增删改查操作
- document
index.js 代码如下:
// mongoose 数据库连接
const mongoose = require('mongoose');
//1. 创建schema模式(约束)对象 是对集合进行约束的
// mongoose.Schema赋值给Schema
var Schema = mongoose.Schema
mongoose.connect('mongodb://localhost/test',{
useUnifiedTopology:true,
useNewUrlParser:true
});
//使用connection监听数据库的状态
mongoose.connection.once('open',function(){
console.log('数据库连接成功')
});
mongoose.connection.once('close',function(){
console.log('数据库已断开')
});
//学生表的格式 约束信息
var studentSchema = new Schema({
name: String,
age: Number
});
//定义学生操作器
// 2.通过Model次才能对数据库进行操作(增删改查
// mongoose.model(modelName, Schema); modelName就是要映射的集合名
var StudentModel = mongoose.model('students', studentSchema);
module.exports={
StudentModel
}
- 在routes下有两个js文件
index.js用于对数据库的操作
var express = require('express');
const { StudentModel } = require('../model');
var router = express.Router();
var model = require('../model')
/* GET home page. */
// router.get('/', function(req, res, next) {
// res.render('index', { title: 'Express' });
// });
router.get('/addStudent',function(req,res,next){
console.log('请求携带的参数为',req.query)
let query = req.query;
//这里接到请求后会打印 query就是你地址后携带的数据
//req.query的结构自定义,在地址后携带
//向数据库中插入一个文档
// 需要两个参数 StudentModel.create({doc(s)},callback()}
// 用来创建一个或多个文档并添加到数据库中
// 参数:doc(s)可以是一个文档对象,也可以是一个文档对象的数组
// callback是当操作完成后调用的回调函数
StudentModel.create({
name:query.name,
age:query.age
},function(err){
if(!err){
console.log('数据库操作成功')
res.send(`新增学生成功!姓名为${query.name}`);
}
})
});
router.get('/removeStudent',function(req,res,next){
console.log('请求携带的参数为',req.query)
let query = req.query
StudentModel.find(query,(err,docs)=>{
if(!err){
console.log('数据库操作成功')
console.log('查询',docs)
res.send('查询成功'+docs)
}
})
});
router.get('/removeStudent',function(req,res,next){
console.log('请求的参数为',req.query)
let query = req.query
StudentModel.remove(query,(err,docs)=>{
if(!err){
console.log('数据库操作成功')
res.send('删除成功')
}
})
})
module.exports = router;
users.js中
var express = require('express');
var router = express.Router();
var model = require('../model')
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
4.运行
项目完成后执行下npm install
,他会自动把项目预设的插件装进去,然后再装mongoose和nodemon
使用npm start
运行
运行后:
req.query的结构自定义,在地址后携带,所以插入数据
这时候我们可以打开数据库发现我们新增的数据了