Node.js分页(接口)

标题数据访问层(持久层)(dao)

连接数据库

// 公共代码
var mongoose = require('mongoose');

mongoose.connect("mongodb://127.0.0.1:27017/eggcms", { useNewUrlParser: true, useUnifiedTopology: true })
// 监听是否连接成功
mongoose.connection.on("connected", function() {
  console.log("连接数据库成功");
})
var mongoose = require('mongoose');
// var Classes = require('./classModel')

let studentSchema = new mongoose.Schema({
  username: String,
  age: Number,
  address: String,
  birthday: String,
  gender: String,
  xueli: String,
  // 外键
  classId: {
    type: mongoose.Schema.Types.ObjectId,
    // 导入班级模型
    ref: "Classes"
  }
})

const studentModel = mongoose.model('Student', studentSchema, 'student')

module.exports = studentModel
var studentModel = require('./model/studentModel')

module.exports = {
  // 设计一个函数,用来获取数据
  async findAll(page, size) {
    // mongoose连接数据库API方法都是异步方法
    // skip()表示从那条数据开始  limit表示每次返回多少条
    const students = await studentModel.find().skip(page).limit(size);
    return students;
  }
}

业务逻辑层(service)

const { findAll } = require('../dao/studentDao')

module.exports = {
  async findAllStudent(page, size) {
    page = (page - 1) * size;
    const res = await findAll(page, size);
    // 判断是否查找到
    if (res.length > 0) {
      return { success: res, msg: '查询成功' }
    } else {
      return { success: false, msg: '查询失败' }
    }
  }
}

表示层(public+router)

var express = require('express');
var router = express.Router();
var { findAllStudent } = require('../service/studentService')

/* GET users listing. */
router.get('/findAll', async function (req, res, next) {
  // 获取用户传递过来的参数
  const obj = req.query;
  const page = obj.page || 1;
  const size = obj.size || 5;
  const val = await findAllStudent(parseInt(page), parseInt(size));
  //将数据返回给浏览器
  res.send(val)
});

module.exports = router;

app.js中添加

var studentRouter = require('./routes/students');

app.use('/student', studentRouter);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值