我正在制作一个带有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
但仍然会发生。
如果您需要更多信息,请告诉我
答案 0 :(得分:4)
首先猜测你的模式定义了一个子文档数组,而mongoose期望该数组总是只包含mongoose模型实例,但是你的代码在那里放了其他东西,可能是一些普通的javascript对象而不是mongoose模型实例,其中包含一个_doc属性,表示底层的mongodb文档。
您只需将"mongoose": "3.5.x"
放入package.json,而不是完整的网址。