0
votes

I Am making a blog with node/express/mongoose and I keep getting this error:

/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)

I have tried uninstalling mongoose changing my package.json with "mongoose": "git://github.com/LearnBoost/mongoose.git" and doing npm install but it still happens.

let me know if you need more info

1

1 Answers

4
votes

First guess is your schema defines an array of subdocuments, and mongoose expects that array to always contain only mongoose model instances, but your code is putting something else in there, probably some plain javascript objects instead of mongoose model instances, which contain an _doc property that represents the underlying mongodb document.

You just need to put "mongoose": "3.5.x" in your package.json, not the full URL.