创建rmvc架构和mongoose基本操作

创建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
}
})
}

猜你喜欢

转载自blog.csdn.net/zhangyuea/article/details/89228726
今日推荐