nodejs mongoose 分頁查詢


最近在用所學知識寫自己的博客系統,想要實現一個獲取文章列表的分頁功能,大概是如下效果:

 

 

 第一次用nodejs寫分頁查詢功能,記錄一下過程

前端代碼:

async getArticleList (index) {
      let res = await this.$http.post('/article/getArticleList',{page: index, pageSize: this.pageSize})
      console.log(res)
      if(res.data.result === 0) {
        let data = res.data
        this.count = data.total
        this.articlelist = data.artcleList
      }else {
        return this.$Message.error(res.data.error_info)
      }
    }

服務端代碼:

// 獲取文章列表
router.post('/getArticleList', function ( req, res) {
    let page = req.body.page
    let limit = req.body.pageSize || 5
    Article.find({},function (err, data) {
        if(err) return res.status(500).json({
            result: 1,
            error_info: '請求失敗!'
        })
        let count = data.length
        console.log(count)
        Article.find({}).skip((page - 1)*parseInt(limit)).limit(parseInt(limit)).exec(function (err, data) {
            if(err) return res.status(500).json({
                result: 1,
                error_info: '服務器繁忙,請稍后重試!'
            })
            return res.status(200).json({
                result:0,
                message:'請求成功',
                total: count,
                artcleList: data
            })
        })
    })
})

page和limit是由前端傳過來的,通過req.body來獲取,因為是要給前端傳所有的數據條數,所以就需要將所有數據都查詢出來,通過data.length取出長度.。

skip表示跳過前N個查詢結果,返回從N+1個開始的limit個數據,比如,一頁5條數據,現在要查詢第3頁數據,就跳過前兩頁的10條數據,返回從第三頁開始的5條數據。

exec表示計算由前面查詢條件返回的結果。

推薦文章:

https://blog.csdn.net/qq_36443294/article/details/84990826

https://www.jianshu.com/p/2f54b90efe15


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM