express ajax分页实例,element+express+mongoose实现分页查询

一个element配合express实现分页查询的思路与实现。

技术栈Element

Express

Mongoose

前端实现

前端的分页使用了Element的分页组件。

@current-change="handleCurrentChange"

:current-page="currentPage"

:page-size="pageSize"

layout="total, prev, pager, next"

:total="count">

export default {

data () {

return {

count: 0,

currentPage: 1,

pageSize: 10

}

},

methods: {

// 获取当前页码并重新获取数据

handleCurrentChange (val) {

this.currentPage = val

this._initData()

},

// 初始化数据,获得数据数量以及每页数据

_initData () {

let param = {

currentPage: this.currentPage,

pageSize: this.pageSize

}

axios.get('to/your/api').then((response) => {

let res = response.data

if (res.status === '0') {

this.count = res.result.count

}

})

axios.get('to/your/api', {

params: param

})

.then((response) => {

let res = response.data

if (res.status === '0') {

this.questionsList = res.result.list

} else {

this.questionsList = []

}

})

}

}

}

这里使用了两个api,一个用来获取数据总数,一个根据页码来获取该页数据。

后端实现

后端使用express+mongoose实现对数据的分页查询。

// 后端关键代码

router.get("/show", (req, res, next) => {

let Questions = require('../models/questions') // 引入models

let currentPage = parseInt(req.param('currentPage')) // 转换前端传入当前页码

let pageSize = parseInt(req.param('pageSize')) // 转换前端传入的每页大小

let skip = (currentPage-1)*pageSize // 实现分割查询的skip

let params = {}

// 使用mongoose的skip,limit两个api对数据进行跳跃查询并返回查询结果

let questionsModel = Questions.find(params).skip(skip).limit(pageSize)

questionsModel.exec((err, doc) => {

if (err) {

res.json({

status: '1',

msg: err.message

})

} else {

res.json({

status: '0',

msg: '',

result: {

list: doc

}

})

}

})

})

本文参考ELement文档

mongoose中文文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值