【问题标题】:TypeError: Cannot use 'in' operator to search for 'pluralization' in undefinedTypeError:无法使用“in”运算符在未定义中搜索“复数”
【发布时间】:2015-10-12 18:01:17
【问题描述】:

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

C:\Code\project\node_modules\mongoose\lib\index.js:364 如果 (!('pluralization' in schema.options)) schema.options.pluralization = 这
^
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);

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

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

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您正在尝试从架构 class 而非架构 instance 中创建模型。

    改用这个:

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

    这类似于您通常如何创建模型:

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

    【讨论】:

      猜你喜欢
      • 2016-11-20
      • 2022-01-18
      • 2020-04-08
      • 2021-04-16
      • 1970-01-01
      • 2018-05-02
      • 2015-02-19
      • 1970-01-01
      • 2021-11-03
      相关资源
      最近更新 更多