@芥末的糖----------《管理系统后台架构逻辑》

mongo逻辑

//1.创建mongoose对象链接数据库,并暴露
var mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/lagou', {
  useNewUrlParser: true
})

var db = mongoose.connection
db.on('error', console.error.bind(console, 'connection error:'))
db.once('open', function () {
  // we're connected!
})

module.exports = mongoose
// 2.创建Schema表字段
const positionSchema = new mongoose.Schema({
  companyLogo: String,
  companyName: String,
  positionName: String,
  city: String,
  salary: String,
  createDate: String
})
const PositionModel = mongoose.model('positions', positionSchema)//创建集合约束模型

//使用对象操作
new
PositionModel(data) .save() .then((result) => { return result })

增----删----改----查

1.后台保存接口逻辑

1.express的路由调用controller
2.controller调用model层暴露的save模块,传入req.body
3.model层接受数据,将new集合一个对象数据.save()保存,并且return数据返回controller层
4.在controller层插入失败!!result返回前端res.render()使用模板引擎渲染的数据(将对象转化为字符串)

2.列出所有信息接口逻辑

1.路由调用controller层
2.await等model层的数据
3,
 PositionModel
    .find({})
    .sort({
      _id: -1
    })
    .then((result) => {
      return result
    })
    // catch表示find操作出错了,空数据并不代表出错
    .catch((err) => {
      return false
    })

4.controller层res.render返回接口数据

3.显示单条数据接口逻辑

1.路由调controller
2.controller层req.body.id获取id
3.调用model的listone接口,传入id
4.model操作集合返回值
PositionModel
    .findById(id)
    .then((result) => {
      return result
    })

 5.res.render返回接口模板data

4.删除某条信息接口逻辑

1.express路由调controller
2.解构赋值id
3.model层操作集合
PositionModel
    .findByIdAndDelete(id)
    .then((result) => {
      return result
    })

4.controller层返回接口模范信息

1.express路由调用controller、
2.controller层传id和data去model层
3.model返回数据
4.调用模板返回接口数据

 登录注册逻辑

注册:有则失败
    没有就加密插入

登录:根据用户名查找用户信息
    用户名有:密码相比较
        成功:返回用户名
            (Session的初始化, )
            产生一个Session状态
            给浏览器种一个cookie。res.setcookie
        失败:返回密码错误    
    用户名没有;查无此人
原文地址:https://www.cnblogs.com/moonzwt/p/9833814.html