Mongoose对于Node.js错误对象没有方法验证

时间:2012-12-25 16:31:15

标签: node.js mongodb express mongoose

我正在制作一个带有node / express / mongoose的博客,我一直收到这个错误:

  

/ Users / Ari / Sites / Amateur Dev / node_modules / mongoose / lib / schema / documentarray.js:94           doc.validate(function(err){               ^   TypeError:Object#没有方法'validate'       在DocumentArray.doValidate(/ Users / Ari / Sites / Amateur Dev / node_modules / mongoose / lib / schema / documentarray.js:94:13)       在DocumentArray.doValidate(/ Users / Ari / Sites / Amateur Dev / node_modules / mongoose / lib / schema / documentarray.js:102:9)       在DocumentArray.SchemaType.doValidate(/ Users / Ari / Sites / Amateur Dev / node_modules / mongoose / lib / schematype.js:601:22)       在DocumentArray.doValidate(/ Users / Ari / Sites / Amateur Dev / node_modules / mongoose / lib / schema / documentarray.js:73:35)       在Document.validate.err(/ Users / Ari / Sites / Amateur Dev / node_modules / mongoose / lib / document.js:911:9)       at process.startup.processNextTick.process._tickCallback(node.js:244:9)

我尝试使用“mongoose”卸载mongoose更改我的package.json:“git://github.com/LearnBoost/mongoose.git”并执行npm install但仍然会发生。

如果您需要更多信息,请告诉我

1 个答案:

答案 0 :(得分:4)

首先猜测你的模式定义了一个子文档数组,而mongoose期望该数组总是只包含mongoose模型实例,但是你的代码在那里放了其他东西,可能是一些普通的javascript对象而不是mongoose模型实例,其中包含一个_doc属性,表示底层的mongodb文档。

您只需将"mongoose": "3.5.x"放入package.json,而不是完整的网址。