创建RMVC框架
R:router 路由
M:model 数据
V:view 视图
C:controller 逻辑
步骤
1.新建express框架
express -e 项目名字 .(在当前目录下创建)
进入项目,安装项目依赖,开启监听
2.在框架里面加两个文件夹
controllers和models
项目文件下改有的文件和文件夹
1.bin //配置路由
2.controllers //逻辑代码
3.models //数据代码
4.node_modules //项目依赖包
5.public //静态项目文件
6.views //视图,展示出来界面,ejs文件
7.app.js //入口文件,所有文件都要在这里配置
8.package-lock.json //项目依赖包的详细版本信息
9.package.json //项目依赖包的说明,说明安装了那些插件
3.把各个文件的任务分清楚,代码写在各自的文件中
1.把数据写在models文件夹里面
2.把逻辑类的函数之类的写在controllers文件夹里面
3.路由写在路由里
3.视图写在视图里
4.把写好的东西暴露出去,在需要的地方引入
module.exports=接口名称//暴露
const 接口名称=require('接口名称')//引入
5.改一下app.js里面的app.use和routes
连接数据库,并实现增删改查
步骤
1.安装mongoose
npm i mongoose -S
导入mongoose
const mongoose=require('mongoose');
2.在项目根目录下新建db文件夹,在文件夹中建好index文件(主文件),connect文件(连接数据库文件),model文件夹(放多个模型),schema(骨架文件夹,存放多个文件)
3.连接数据库,连接成功/错误提醒(写在connect文件中)
mongoose.connect('mongodb://localhost/27017/stu', (err) => {//连接数据库
if (!err) console.log('connect database success')
else throw err;
})
4.Schema 骨架
Model 由骨架发布生成的模型,具有抽象和行为的数据库操作
Entity 由Model创建的实体,他的操作会影响到数据库
存储数据的步骤
创建骨架–>创建Model模型---->Entity实例化方法
5.创建骨架(写在schema夹文件中)
const Schema = mongoose.Schema;
const 骨架名称 = new Schema({
id: Number,
name: String,
age: Number
});
6.创建模型(写在model文件夹中)
const preModel = mongoose.Model(模型名称, 骨架名称)
7.在index文件中新建db模块,并暴露出去,在db对象中创建一个数据库对象,在数据库对象中创建增删改查四个对象,在里面写入相应的增删改查操作
实例化模型
const preInstance = new preModel();
preInstance.id = 4;
preInstance.name = "同桌";
preInstance.age = 18;
通过 实例.save()存进去
8.查询数据
模型名称.find({},(err,res)=>{
const id=res[0]._id//id查询
});
find: ({条件})=>{
teacherModel.find({条件},(err,result)=>{
if( !err ){//查询成功
console.log('search data success')
console.log( "result",result )
}else{
throw err
}
})
}
}
9.删除数据
//先通过模型.find({条件}),查找到数据,然后找到_id,通过模型.findById(_id,(err,docs)=>{docs就是结果,docs.remove()=>{}})
delete:()=>{
teacherModel.find({age: 200},(err,result)=>{
if( !err ){//查询成功
const id = result[0]._id
teacherModel.findById(id,(err,docs)=>{
if(!err){//删除成功
docs.remove(()=>console.log('delete data success~~'))
}else{
throw err
}
})
}else{
throw err
}
})
}
10.改数据
给数据和删除一样,最后通过.save()修改
update:()=>{
teacherModel.find({name: "yanyabing"},(err,res)=>{
if(!err){
console.log("res",res)
const id = res[0]._id
teacherModel.findById(id,(err,docs)=>{
docs.age = 18,
docs.save((err)=>{
if(!err){
console.log('data update success~~')
}else{
throw err
}
})
})
}else{
throw err
}
})
}