欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三层架构

程序员文章站 2022-03-14 10:16:12
...

三层架构

1、目录结构

三层架构
2、代码:

// ./routes/users.js    表现层:完成与用户端的交互,并负责简单的数据梳理

//  ./routes/users.js      表现层:完成与用户端的交互,并负责简单的数据处理
const usersService = require("../service/users");
router.post('/login', async function (req, res, next) {
  const { username, password } = req.body;
  const data = await usersService.login({ username, password });
  res.send(data);
});
// ./service/users.js      业务层:整个路由接口处理对应业务的主体逻辑
const usersDao = require("../dao/users");
const service = {}
service.login = async ({ username, password }) => {
    const data = await usersDao.findUser({ username, password });
    let isLogin = false;
    if (data.length >= 1) {
        isLogin = true;
    }
    return { isLogin };
}
module.exports = service;
//  ./dao/users.js			数据接口层:用来访问数据库,完成指定数据库操作
const  usersModel = require("./models/usersModel");
const dao = {}
dao.findUser = async (condition)=>{
    return await usersModel.find(condition);
}
module.exports = dao;

//下面是其他的一些附加操作(模块化):

//   ./dao/db.js     用来链接数据库的模块
const mongoose = require('mongoose');
const dbname = "f67";
mongoose.connect(
  'mongodb://localhost/' + dbname,
  { useNewUrlParser: true, useUnifiedTopology: true }
);
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
  // we're connected!
  console.log("we're connected to " + dbname);
});

//   ./dao/models/usersModel    与数据库对应的某一个集合的模型
const mongoose  = require("mongoose");
const usersSchema = mongoose.Schema({
    username: String,
    password: String
  }, { versionKey: false });
const usersModel = mongoose.model('users', usersSchema);//users集合
module.exports = usersModel;

分页

1、在mongoose里面(原生也有),有两个API,一般用来做分页:

  • - query.skip:
    - query.limit:

  • countDocuments

2、静态页面:自己梳理页面逻辑,下面是主要思想
创建一个pager对象,用来管理页面状态
aja、x发送的数据的数据应该来自pager,ajax接受的数据应该整合到pager

数据的数据应该来自pager,ajax接受的数据应该整合到pager

RestFul接口规范

1、我们用到的接口如下

Get:/students/getStudents

​ =>get:/students/

Post:/students/addStudents

​ =>post:/students/:name

Post:/students/updataStudents

​ =>put:/students/:id

Post:/students/deleteStudents

​ =>delete:/students/:id

相关标签: express javascript