在上一篇中已经在Node.js中引入使用了mongoose进行MongoDB数据库的基本操作,在本篇当中在Express框架中来连接数据库以及操作数据库;
Express 项目环境
这里是通过全局安装Express框架生产的项目环境,也可以通过局部安装的方式,安装过程可以在往期的篇目中去看一下,附上链接: Express框架 安装_express框架安装
express expMongoPro
npm install
局部安装mongoose模块
npm install mongoose -s
连接数据库
首先引入mongoose模块,通过connect()方法连接数据库,然后通过Schema进行定义document框架规范数据类型,再通过通过model()方法发布模型,最后将模块进行导出供其他程序加载使用;
1. 编写代码
1 . 在 /public/javascript/ 的目录下创建这个文件 conn_mongodb.js 编写代码:
const mongoose = require('mongoose');
mongoose.set('strictQuery',true);
mongoose.connect('mongodb://127.0.0.1:27017/syan',function(err){
if(err){
console.log("—— 连接异常 ——");
}else{
console.log("—— 连接成功 ——");
}
})
// document框架
const infoSchema = new mongoose.Schema({
name:String,
age:Number
});
// Model - global(全局)
global.infoModel = mongoose.model("syan",infoSchema,"sen");
// 共享
module.exports = mongoose;
2 . 测试引入打印:在 /routes/index.js文件中编写 ;
const conn= require('../public/javascripts/conn_sql')
操作数据库
数据库已经连接成功了,下面要来操作数据库的增删查改:
查
在 routes/index.js 文件中编写路由文件,引入conn_mongodb.js文件,通过请求url http://127.0.0.1:3000/all 时,进行查询数据库的数据操作:
const express = require('express');
const router = express.Router();
const conn = require('../public/javascripts/conn_mongodb');
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
/* 查 */
router.all('/all',function(req,res){
// 查询操作
infoModel.find({}).exec(function(err,data){
if(err){
res.send("查询异常");
}else{
console.log("查询成功");
res.send(data);
}
})
})
module.exports = router;
通过命令 npm start 将项目跑起来:
在浏览器中输入请求url地址: http://127.0.0.1:3000/all 或 http://localhost:3000/all
以上就进行了数据库的查询操作;
增
通过请求url 往数据库里添加数据操作;添加一条文档 <name:LIN ,age:18 >;
1. 代码编写
/* 增 */
router.get('/save',function(req,res){
// 添加数据 —— <name>:LIN <age>:18
let addContent = {
name:'LIN',
age:18
}
const insert = new infoModel();
insert.name = addContent.name;
insert.age = addContent.age;
insert.save(function(err,data){
if(err){
res.send("添加异常");
}else{
console.log("添加成功");
res.send(data);
}
});
})
2. 测试运行,浏览器输入:http://127.0.0.1:3000/save
改
通过请求url 往数据库里修改文档操作;修改一条文档内容 <name:LIN ,age:18 > 修改文档内容为 <name : ZEN ,age : 18 >;
1. 代码编写
/* 改 */
router.get('/update',function(req,res){
// 更新文档 —— <name>:ZEN <age>:18
let updateContent = {
name:'ZEN',
age:18
}
// 更新条件
let querys = {
name:'LIN',
age:18
}
infoModel.updateOne(querys,updateContent,function(err){
if(err){
console.log("修改异常");
}else{
console.log("修改成功");
res.send("{ updated : 1 , message : success }");
}
})
})
2. 测试运行,浏览器输入:http://127.0.0.1:3000/update
删
通过请求url 往数据库里删除文档操作;删除一条文档内容 _id:6397db88b11c6ecf96f07d2e
1. 代码编写
/* 删 */
router.get('/del/:id',async function(req,res){
// 根据id来删除数据(id是唯一标识);
console.log("id:"+ req.params.id);
const doc = await infoModel.findById(req.params.id);
await doc.remove(function(err){
if(err){
res.send("删除异常");
}else{
console.log("删除成功");
res.send("{ delete : 1 , message : success }");
}
})
})
2. 测试运行,浏览器输入:http://127.0.0.1:3000/del/输入删除的_id
以上就是本篇的全部内容了,通过Express框架连接MongoDB数据以及进行集合中文档的增删查改操作,搭配可视化工具使用可以方便快捷的来查询数据的变化;感谢大家的支持!