【问题标题】:Invalid value for schema Array path架构数组路径的值无效
【发布时间】:2015-08-31 14:24:29
【问题描述】:

我正在尝试构建的评论模型包含:Reply 和 CommentThread。 CommentThread 包含Reply,Reply 可以自己递归。

/models/comment.js:

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

var replySchema = new Schema({
  username: String,
  timestamp: { type: Date, default: Date.now },
  body: String,
  replies: [replySchema]
}, {_id: true});

var commentThreadSchema = new Schema({
  title: String,
  replies: [replySchema]
});

var Reply = mongoose.model('Reply', replySchema);
var CommentThread = mongoose.model('CommentThread', commentThreadSchema);

module.exports = {
    Reply: Reply,
    CommentThread: CommentThread
};

我的错误信息是:架构数组路径“回复”的值无效。不能replySchema 将自己用作值类型吗?还是其他原因?

c:\Users\jacki_000\projects\invictusblog\node_modules\mongoose\lib\schema.js:297

      throw new TypeError('Invalid value for schema Array path `'+ prefix + ke
            ^
TypeError: Invalid value for schema Array path `replies`
    at Schema.add (c:\Users\jacki_000\projects\invictusblog\node_modules\mongoos
e\lib\schema.js:297:13)
    at new Schema (c:\Users\jacki_000\projects\invictusblog\node_modules\mongoos
e\lib\schema.js:87:10)
    at Object.<anonymous> (c:\Users\jacki_000\projects\invictusblog\models\comme
nt.js:4:19)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (c:\Users\jacki_000\projects\invictusblog\services\com
ment-service.js:1:83)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)

【问题讨论】:

    标签: mongoose schema


    【解决方案1】:

    https://searchcode.com/codesearch/view/6134527/

    看上面的例子,你需要做类似的事情

    var replySchema = new Schema();
    replyschema.add({
      username: String,
      timestamp: { type: Date, default: Date.now },
      body: String,
      replies: [replySchema]
    });
    

    【讨论】:

    • 谢谢。有用。是不是因为在使用replySchema之前要先定义好?
    • 谢谢,从旧版本的 mongoose 迁移时遇到了同样的问题。问题是如何定义模式。 .add 运行良好。
    【解决方案2】:

    运行

    npm install mongoose@3.8.5

    快速修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-22
      • 2021-03-04
      • 2011-10-20
      • 1970-01-01
      • 2020-10-24
      • 2021-03-24
      • 2014-11-28
      • 1970-01-01
      相关资源
      最近更新 更多