mongoose操作流程
- 安装mongoose
$ cnpm i mongoose -D
- 连接数据库
var mongoose = require( 'mongoose )
//mongoose.connect(连接地址/数据库名称)
mongoose.connect( 'mongodb://127.0.0.1:27017/students' )
- Schema定义
它可以理解为数据库模型骨架,可以看作工厂中模具一样,好比一个茶杯,喝水是茶杯最终的功能,茶杯本身就像是Model,那么茶杯的批量生产是需要靠工厂的模具成型的。Schema不仅定义了文档结构和使用性能,还可以有扩展插件、实例方法、静态方法、复合索引、文档生命周期钩子。
- Schema 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
- Model 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
- Entity 由Model创建的实体,他的操作也会影响数据库
// 1. 定义Schema
// var studentsSchema = new mongoose.Schema( options ) //options是用来定义存储数据的数据类型
var studentsSchema = new mongoose.Schema( {
// 数据: 数据类型
id: Number,
name: String,
age: Number
})
// 2. 定义模型
// var studentsModel = mongoose.model( 集合名称,骨架 )
var studentsModel = mongoose.model( 'students', studentsSchema )
// 3. 定义实体
var students = new studentsModel()
- 搭建express框架
$exoress -e mongoose
- 安装依赖包
$cnpm install
- 测试框架是否搭建好
$npm start
在app.js里面新增应用级路由
app.use('/users',usersRouter);
文件上方引入该路由
var mine = require( '/routes/mineRouter ’)
在 routes的文件夹下新建mine.js文件
代码如下
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
//接受表单发来的信息
let { username,password } = req.query //解构赋值
if()
res.render('mine' ,{
mine: JSON.stringify({
username,password
})
})
});
module.exports = router;
//暴露接口
在view文件新建mine.ejs(显示内容)
<% -mine%> 解析内容
在终端安装mongoose模块
$cnpm i mongoose -D
在mine。js的文件夹中引入mongoose模块
链接数据库(链接前确认数据库已经启动)
mongoose.connect(数据库地址)
- 定义骨架
var studentSchema = new mongoose.Schema({
id:number, //数据名称:数据类型
name: String
})
- 定义模型
var studentsModel = mongoose.model( 'students',studentSchema ) //集合名称,骨架
- 定义实体
var students = new studentsModel()
mongo的增删改查
- 增加数据
- 增加的数据名称
集合名称.save((error)=>{
if(error) throw error
提示信息
})
- 查询数据
studentsModel.find({},( error,result)=>{
if(error) throw error //抛错
console.log( result[0]._id )//查询的数据
})
- 删除
studentsModel.find({},( error,result )=>{
if( error ) throw error
var id = result[0]._id //通过ID删除数据
studentsModel.findById( id,( error,data ) =>{
if( error) throw error //抛错
data.remove(()=>{ //提示信息
console.log( '删除成功' )
})
})
})
- 修改
studentsModel.find({},( error,result)=>{
if( error ) throw error
const id = result[0]._id
studentsModel.findById( id,( error,data ) =>{
if(error) throw error
data.name='修改信息'
data.save()
})
})