我正在使用 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) at DocumentArray.doValidate (/Users/Ari/Sites/Amateur Dev/node_modules/mongoose/lib/schema/documentarray.js:102:9) at DocumentArray.SchemaType.doValidate (/Users/Ari/Sites/Amateur Dev/node_modules/mongoose/lib/schematype.js:601:22) at DocumentArray.doValidate (/Users/Ari/Sites/Amateur Dev/node_modules/mongoose/lib/schema/documentarray.js:73:35) at 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": "git://github.com/LearnBoost/mongoose.git"更改我的 package.json 并执行 npm install
但它仍然发生。
如果您需要更多信息,请告诉我
最佳答案
第一个猜测是您的架构定义了一个子文档数组,并且 mongoose 期望该数组始终仅包含 mongoose 模型实例,但您的代码在其中放置了其他内容,可能是一些普通的 javascript 对象而不是 mongoose 模型实例,其中包含表示底层 mongodb 文档的 _doc 属性。
您只需将 "mongoose": "3.5.x"
放入 package.json 中,而不是完整的 URL。
关于node.js - Mongoose For Node.js 错误对象没有方法验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032325/