一、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