[英]Model Error using Mongoose Pagination Package
我正在嘗試使用mongoose-pagination包並嘗試遵循提供的文檔,但是它似乎不適用於我的模型。 我收到此錯誤消息:
/Users/user/Desktop/Projects/node/blog/app/models/blogModel.js:16
BlogPostSchema.paginate({}, 2, 10, function(error, pageCount, paginatedResults
^
TypeError: Object #<Schema> has no method 'paginate'
at Object.<anonymous> (/Users/user/Desktop/Projects/node/blog/app/models/blogModel.js:16:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/user/Desktop/Projects/node/blog/server.js:18:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
而且我不確定為什么會收到此錯誤,因為插件應該允許使用paginate方法。
blogModel.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mongoosePaginate = require('mongoose-paginate');
var BlogPostSchema = new Schema({
title: String,
author: String,
content: String,
date: { type: Date, default: Date.now }
});
BlogPostSchema.plugin(mongoosePaginate);
BlogPostSchema.paginate({}, 2, 10, function(error, pageCount, paginatedResults, itemCount) {
if (error) {
console.error(error);
} else {
console.log('Pages:', pageCount);
}
});
module.exports = mongoose.model('Blogpost', BlogPostSchema);
你說錯了。 .paginate()
方法在模型上實例化。 因此,您在架構上設置了插件,然后從模型實例進行調用。 簡化形式:
var mongoose = require('mongoose'),
mongoosePaginate = require('mongoose-paginate'),
Schema = mongoose.Schema;
var blogPostSchema = new Schema({
title: String,
author: String,
content: String,
date: { type: Date, default: Date.now }
});
blogPostSchema.plugin( mongoosePaginate );
var Blogpost = mongoose.model( "Blogpost", blogPostSchema );
mongoose.connect('mongodb://localhost/test')
Blogpost.paginate({}, 2, 10, function(err,pageCount, results, count) {
// do something with results
})
我想在一個更復雜的示例的上下文中添加一個答案,應該提防模式緩存:我的新模型是使用與現有模型相同的名稱創建的,但沒有使用pagniate函數進行擴充。
當我使用Schema創建模型時,我得到的是舊版本(已緩存),而不是新版本(帶有分頁的版本)。
簡而言之:為不同的型號使用不同的名稱!
希望這對某人有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.