0

我正在使用 node/express/mongoose 制作博客,但我不断收到此错误:

/Users/Ari/Sites/Amateur Dev/node_modules/mongoose/lib/schema/documentarray.js:94 doc.validate(function (err) { ^ TypeError: Object # has no method 'validate' at 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) 在进程.startup.processNextTick.process._tickCallback (node.js:244:9)

我已经尝试卸载猫鼬,用“mongoose”更改我的package.json:“git://github.com/LearnBoost/mongoose.git”并这样做npm install,但它仍然会发生。

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

4

1 回答 1

4

首先猜测是您的架构定义了一个子文档数组,而 mongoose 期望该数组始终只包含 mongoose 模型实例,但是您的代码在其中放置了其他内容,可能是一些普通的 javascript 对象而不是包含 _doc 属性的 mongoose 模型实例表示底层 mongodb 文档。

您只需要"mongoose": "3.5.x"输入您的 package.json,而不是完整的 URL。

于 2012-12-25T16:43:03.287 回答