TypeError:不能使用'in'运算符来搜索undefined中的'pluralization'

Sad*_*diq 1 mongoose mongodb node.js

我正在尝试使用鉴别器来实现继承,如Mongoose API文档中所示.但是,我不断收到以下错误:

C:\ Code\project \node_modules\mongoose\lib\index.js:364 if(!(schema.options中的'pluralization'))schema.options.pluralization = thi
^
TypeError:不能使用'in'运算符来搜索Mongoose.model中未定义的'复数'(C:\ Code\project \node_modules\mongoose\lib\index.js:364:34)

这是导致上述错误的代码; 我尝试扩展mongoose Schema类来创建我的基础模式:

var util = require('util');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

function ResourceSchema() {
  Schema.apply(this, arguments);

  this.add({
    title: String
  });
}
util.inherits(ResourceSchema, Schema);

module.exports = mongoose.model('Resource', ResourceSchema);
Run Code Online (Sandbox Code Playgroud)

我也尝试在最后一行设置集合名称,但这没有帮助.

module.exports = mongoose.model('Resource', ResourceSchema, 'resources');
Run Code Online (Sandbox Code Playgroud)

rob*_*lep 5

您正在尝试从架构创建模型,而不是模式实例.

请改用:

module.exports = mongoose.model('Resource', new ResourceSchema());
Run Code Online (Sandbox Code Playgroud)

这类似于您通常创建模型的方式:

var schema = new Schema({ ... }); // or, in your case, ResourceSchema
var model  = mongoose.model('Model', schema);
Run Code Online (Sandbox Code Playgroud)