簡體   English   中英

使用貓鼬分頁軟件包的模型錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM