mongoose實現分頁查詢

mongodb數據庫連接

//db.js
var mongoose = require('mongoose');
var DB_CONN_STR = 'mongodb://127.0.0.1:27017/manager'; 

mongoose.connect(DB_CONN_STR, { useNewUrlParser: true,authSource:'manager' }, (err, res) => {
  if (err) {
    // console.log(111)
    console.log(err)
  }
});
module.exports = mongoose;

數據庫用戶表結構

// shame.js
let mongoose = require('.');
let Schema = mongoose.Schema;
let userSchema = Schema({
    account: {
        type: String,
        required: true
    },
    passwd: {
        type: String,
        required: true
    },
    username: { 
        type: String,
        required: true
    },
    department: String,
    active: Boolean,
    created: Number,
    updated: Number,
    lastLogin: Number
});
let user = mongoose.model('manager_user', userSchema);
module.exports = user;

處理分頁請求

//user.js
const express = require('express');
const router = express.Router();
const logger = require('../logger').logger;
const User = require('../db/user');
router.get('/list', function (req, res) {
    let query = req.query;
    User.countDocuments({}, (error, count) => {
        if (error) {
            logger.error(`user::/list::error:${JSON.stringify(error)}`);
            res.json({
                status: 400,
                msg: JSON.stringify(error)
            });
        } else {
            User.find({}).skip((query.pageNo - 1) * query.pageSize).limit(parseInt(query.pageSize)||20) .sort({ 'created': -1 }).exec((err, doc) => {
                if (err) {
                    logger.error(`user::/list::err:${JSON.stringify(err)}`);
                    res.json({
                        status: 400,
                        msg: JSON.stringify(err)
                    });
                } else {
                    res.json({
                        status: 200,
                        result: doc,
                        total: count,
                        msg:'OK'
                    });
                }
            })
        }
    })
});
module.exports = router;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章