用mongosse 进行增删改查(2018/11/13)

一、mongoose 是一个包
 
 
打开cdm   mongod   --dbpath=d:/data 
打开cmd  mongo
新建一个文件夹 在里面写一个text.js文件    打开这个https://mongoosejs.com/  网址
将这段代码 复制到 text.js文件夹中
const mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test');
const Cat = mongoose.model('Cat', { name: String });
const kitty = new Cat({ name: 'Zildjian' }); 
kitty.save().then(() => console.log('meow'));
在文件路径下打开cmd   cnpm i mongoose --save
                                      node  text  //运行文件  出现meow 成功
 
在mongo 的cmd中  show dbs    
                                use test
                                show collections  //cats
                                db.cats.find()
 
二、mongoose的增删改查
 
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test',()=>{
     console.log("连接成功")
});
const Cat = mongoose.model('Cat', { name: String});//建立模型     第一个名字是集合的名字  第二个是集合中的键值对   
/*const kitty = new Cat({ name: 'Zildjian' });
kitty.save().then(() => console.log('meow'));*/  //这是写法一
/*new Cat({name:"ggg"}).save().then(()=>console.log("添加成功"))*/ //这是写法二
/*Cat.remove({name:"ggg"}).then(()=>console.log("删除成功"))
Cat.update({name:"哈哈"},{$set:{name:"aaa"}}).then(()=>console.log("修改成功"))
*/
Cat.find({name:'aaa'}).then() // 查找 在mongo中
Cat({name:"fff"}).save().then(()=>console.log("成功"))
 
 
三、用express项目 连接mongoose数据库进行页面渲染
三层  MVC (model view control)
                model  模型层  做数据操作的
                view    视图层
                controller  业务逻辑层
 
MVC主要思路:
                Model 文件主要负责引用连接数据库的conn.js文件---->建立mongoose模型,生成集合(如果数据库里没有数据内容需要在mongo/conn.js中添加一些数据)------>从数据库中找到需要的数据,封装在方法中------->将方法暴露出去(module.exports)
               
                Controller文件主要负责引用Model文件------>向Model发送请求,然后拿到Model中的数据,封装在方法中------>将方法暴露出去
 
                index.js文件主要负责引入controller,将方法传给html页面
 
 
 
 
主要步骤 :
                  ①新建一个express项目  app
 
                  ②打开cdm   mongod   --dbpath=d:/data 
                    打开cmd  mongo
               
                ③在文件路径下打开cmd   cnpm i mongoose --save
                                                         npm  start   
                ④新建一个db文件夹 ------>创建conn.js    //用于与mongoose数据库建立连接
                    
conn.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test',(err)=>{
     if(err){
           console.log("连接失败")
     }else{
           console.log("连接成功")
     }
});
module.exports=mongoose
 
                    ⑤建立一个Model文件夹------>创建 xxxModel.js    
catsModel.js
const mongoose= require("../db/conn");
const catModel= mongoose.model("cats",{name:String})
var getData=(callback)=>{
     CatModel.find().then((data)=>{
           callback(data)
     })
}
module.exports={
     getData:getdata
}
                
              ⑥建立一个Controller文件夹------>创建xxxController.js
catsController.js
const CatModel = require("../model/CatModel");
var getList=(req,res)=>{
     CatModel.getDate((data)=>{
           res.json({
                list:data
           })
     })
}
module.exports={
     getList:getList
}
                  
 
              ⑦打开router文件夹中的index.js         ( 用get的方法取值 )
index.js
var express = require('express');
var router = express.Router();
const catsController =  require("../catsController/catsController")
router.get('/list',catsController.getList)
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});
module.exports = router;
                  
 
             ⑧建立xxx.html文件
list.html
<body>
 
</body>
<script type="text/javascript">
                $.get("http://localhost:3000/list").then((res)=>{          
                     var content =  baidu.template("tem",res);
                     console.log(content)
                     $("#box").html(content);
                })
           </script>

v

原文地址:https://www.cnblogs.com/zsrTaki/p/11510433.html