node.js - 类型错误 : Cannot use 'in' operator to search for 'pluralization' in undefined

标签 node.js mongodb mongoose

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

C:\Code\project\node_modules\mongoose\lib\index.js:364 if (!('pluralization' in schema.options)) schema.options.pluralization = thi
^
TypeError: Cannot use 'in' operator to search for 'pluralization' in undefined at 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);

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

module.exports = mongoose.model('Resource', ResourceSchema, 'resources');

最佳答案

您正在尝试根据架构创建模型,而不是架构实例

改用这个:

module.exports = mongoose.model('Resource', new ResourceSchema());

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

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

关于node.js - 类型错误 : Cannot use 'in' operator to search for 'pluralization' in undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31570288/

相关文章:

mysql - 有限获取所需文件

mongodb - mongodb中的多重分组

node.js - 带有 createConnection 的 Mongoose 连接事件

javascript - Mongoose 4.8.1 poolSize 不会超过 2

regex - Mongoose 在多列中使用正则表达式进行搜索

javascript - Sequelize js : update/save in model's method

node.js - 如何在 Node.js 的模块内使用 Object.create 进行继承

node.js - 为什么我无法从 .find() 查询结果中删除 _id 键?

javascript - 从 php 文件运行命令行程序

MySql After Update 触发器执行顺序