2016-09-24 19 views
0

我使用 明示-分頁貓鼬-分頁錯誤:表達-PAGINATE:`limit`不是數字> = 0

文件結構是明示發電機

我有最新版本的所有插件採取

例如來自: https://github.com/expressjs/express-paginate#example

這個錯誤在出現每次

pages: paginate.getArrayPages(req)(3, pageCount, req.query.page) 

我的代碼是這樣

pages: res.locals.paginate.getArrayPages(req)(3, categories.pages, 1) 

當我註釋此行 頁面呈現成功地,但我不能事後創建鏈接

路線/category.js

function getAllRecords(req , res , next){ 
    console.log("getAllRecords"); 
    var Category = res.categoryModel ; // models/categoryModel.js 
    Category.paginate({}, { page: req.query.page, limit: req.query.limit }, function(err, categories) { 
if (err) throw err; 
res.format({ 
      html: function() { 
       res.render('category/admin', { 
       models: categories.docs, 
       'res':res, 
       pageCount: categories.pages, 
       itemCount: categories.total, 
       pages: res.locals.paginate.getArrayPages(req)(3, categories.pages, 1) 
       }); 
      }, 
      json: function() { 
       // inspired by Stripe's API response for list objects 
       res.json({ 
       object: 'list', 
       has_more: res.locals.paginate.hasNextPages(req)(categories.pages), 
       data: categories.docs 
       }); 
      } 
     }); 

    }); 


} 

app.js

ar app = express(); 
// keep this before all routes that will use pagination 
app.use(paginate.middleware(10, 50)); 
/***** Models ********/ 
var categoryModel = require('./models/categoryModel'); 
var modelsInsideCategoryController = {'categoryModel':categoryModel}; 
var category = require('./routes/category')(modelsInsideCategoryController); 
app.use('/category', category); 

型號/ categoryModel.js

// grab the things we need 
var mongoose = require('mongoose'); 
var mongoosePaginate = require('mongoose-paginate'); 
var Schema = mongoose.Schema; 
// create a schema 
var categorySchema = new Schema({ 
    name: {type:String,required:true}, 
    created_at: Date, 
    updated_at: Date 
}); 
categorySchema.plugin(mongoosePaginate); 
var Category = mongoose.model('Category', categorySchema); 
make this available to our users in our Node applications 
module.exports = Category; 
+0

(https://github.com/expressjs/express-paginate/ [在代碼展望] blob/a34a719fcc308bd8d82b46a9d51dc3bf05faae09/index.js#L61-L62),那麼只有在第一個參數不是數字或者低於0的情況下調用'getArrayPages(req)()'時,纔會發生該錯誤。'3 '在你的代碼硬編碼? – robertklep

+0

是的,3是硬編碼的。 – danish

+0

當我使用的console.log()的限制,pageCout和當前是在快遞-PAGINATE/index.php文件 它給 極限= [對象的對象] = PAGECOUNT當前是未定義未定義= – danish

回答

1

雖然paginate.getArrayPages()需要req作爲參數和返回功能,當您使用res.locals.paginate.getArrayPages()req有已經通過(here),你不應該通過這是你自己。

試試這個:

pages : res.locals.paginate.getArrayPages(3, categories.pages, 1) 

而且同樣適用於hasNextPages()還有:

has_more : res.locals.paginate.hasNextPages(categories.pages) 
+0

好的謝謝,讓我試試 – danish

+0

謝謝你它的工作。 (Y) – danish

相關問題