开始前的准备!!
1.在桌面创建文件夹,在命令提示符里输入如下命令:
2.创建egg项目:npm init egg --type=simple //创建egg框架项目
npm i
添加mongoose: npm i egg-mongoose --save //添加mongodb模板
3.还需在项目中配置mongoose: config/config.default.js
config.mongoose = { url: "mongodb://127.0.0.1:27017/egg-study6", options: {} } //egg-study6是我自己的数据库名、
config/plugin.js
module.exports = { mongoose: { enable: true, package: 'egg-mongoose', },};
配置解除安全指令:config/config.default.js
config.security = { csrf: { enable: false } } //如果不解除安全防护的话,无法获取请求。
配置完成后,就可以开始做项目了。
介绍:
我的习惯是从model层 > service层 > controller层 > router层
model:model层是用来连接数据库的,service层调用数据库都是在这里调用。
service:就是在复杂业务场景下用于做业务逻辑封装的一个抽象层。
controller:负责解析用户的输入,处理后返回相应的结果。
router:将用户的请求基于method和URL分别发到对应的controller上。
开始:
首先,在app下创建model包,并在这里规定传入的数据的类型。
1.注册。
首先是我的service层,
这里定义了一个异步脚本registered方法,awiait(等待)调用model层下的Project文件,查询数据库中phone为params.phone的数据,params是controller层获取前端传过来的参数。结果赋值给corrct,findOne({})为真,(!corrct)就为假,说明数据库中该手机号已注册,执行else,如果findOne({})为假,没有找到该手机号,(!corrct)为真,执行注册,将数据插入到数据库中。
controller层,
这里定义了一个异步脚本registered方法,获取前端传递过来的数据,赋值给params,将params传给service层的project文件中的registered方法进行处理。
router层,
使用post请求,指定路径registered,请求controller层下的project文件中的registered方法
启动:进入项目,输入npm run dev
使用Postman:
在RObo中查看mongodb数据库:
2.登录
service层
前面都差不多,只是多了一个判断,第一步,查询是否存在该用户名,没找到,执行(!corrct),找到了,执行else,但是这里又有两种情况,一种是密码正确,另一种是密码不正确,所以又要判断一次,当前端传递过来的密码等于数据库中该用户名的密码时,执行登录成功,返回该用户的名字、年龄、性别、id。】
controller层
router层
使用Postman
返回的数据:
3.修改密码。
service层
第一步,查询用户ID是否正确,第二部,判断旧密码是否是该用户的密码,是,执行修改,
controller层
router层
使用Postman:
查看数据库:
4.修改名字
service层
controller层
router层
postman:
数据库:
有什么地方没弄对,欢迎各位大佬指点。