mongoose介绍
 Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose
 是 NodeJS 的驱动,不能作为其他语言的驱动。
mongoose特点
 通过关系型数据库的思想来设计非关系型数据库
基于mongodb驱动,简化操作
mongoose的安装和使用
 官网:https://mongoosejs.com/
安装
 npm install mongoose
 引入mongoose并连接数据库
 新建一个目录创建一个js文件把mangoose引入进去,使用mongoose.connect()方法连接MongoDB,这是连接到本地数据库MySQL默认接口(27017)的最小配置,本地来连接失败可以尝试连接127.0.0.1,可以在url中指定多个参数
var mongoose=require(‘mongoose’)
mongoose.connect(‘mongodb://127.0.0.1:27017/stu’,function (err){
 if(!err){
 console.log(‘数据库连接成功’)
 }
 })
module.exports=mongoose
 定义Schema
 数据库中的 Schema,为数据库对象的集合。schema 是 mongoose 里会用到的一种数据模式,可以理解为表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备操作数据库的能力。
var mongoose=require(’./coon’)
 var Schema=mongoose.Schema
 var userSchema=new Schema(
 {
 username:String,
 pass:String,
 tel:String
 }
 )
 var User=mongoose.model(‘user’,userSchema,‘user’);
module.exports=User
 创建数据模型
 定义好了 Schema,接下就是生成 Model。model 是由 schema 生成的模型,可以对数据库的操作。
 注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,如果传入 2 个参数的话:这个模型会和与模型名称相同的、名称为复数的集合建立连接。如果传入 3 个参数的话:模型默认操作与第三个参数同名的集合
var User=mongoose.model(‘user’,userSchema,‘user’);
 mongoose增删改查(后端简单增删改查)
 增加
<form action="/zhuce" method="post">
     <p>
         <span>
             用户名
         </span>
         <input type="text" name="username">
     </p>
     <p>
         <span>
             密码
         </span>
         <input type="text" name="pass">
     </p>
     <p>
         <span>
             电话
         </span>
         <input type="text" name="tel">
     </p>
     <p>
         <input type="submit" value="提交">
     </p>
 </form>
 23
 //添加 router.post('/zhuce',function (req,res){ console.log(req.body); userModel.create(req.body,function (err){ if(!err){ // res.send('注册成功') res.redirect('/userlist') } }) }) 查看 <% for (let i = 0; i < users.length;i++) { %> <% } %>
 </tbody>
 1
 username    pass    tel    操作
 <%= users[i].username %>    <%= users[i].pass %>    <%= users[i].tel %>    编辑 删除
 router.get('/userlist',async function (req,res){ const r=await userModel.find().exec() console.log(r) res.render('user',{'users':r}) }) 修改
 点击修改跳转到edit页面,并通过id来查找到与之对应的数据
编辑
 点击提交按钮提交修改后的数据
编辑页面
 用户名
    <p>
         <span>
             电话
         </span>
         <input type="text" value="<%= user.tel %>" name="tel">
     </p>
     <input type="hidden" name="id" value="<%= user._id %>">
     <p>
         <input type="submit" value="提交">
     </p>
 </form>
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 //点击编辑查看对应数据
 router.get(’/edituser’,async function (req,res){
 var user=await userModel.findById(req.query.id)
 console.log(user)
 res.render(‘edit’,{user})
 })
 //编辑
 router.post(’/update’,async function (req,res){
 var d=req.body
 console.log(d)
 var r=await userModel.update({’_id’:d.id},{$set:{‘username’:d.username,‘tel’:d.tel}}).exec()
 res.redirect(’/userlist’)
 })
 删除
删除
 //删除
 router.get(’/del’,async function (req,res){
 var r =await userModel.remove({’_id’:req.query.id})
 res.redirect(’/userlist’)
 })
  










