2012-12-25 5 views
0

Je fais un blog avec nœud/express/mangouste et je continue à obtenir cette erreur:Mongoose Pour Node.js objet d'erreur n'a pas de méthode valident

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

J'ai essayé de désinstaller mangouste changer mon package.json avec "mongoose": "git: //github.com/LearnBoost/mongoose.git" et faire npm install mais ça arrive encore.

laissez-moi savoir si vous avez besoin de plus d'informations

Répondre

4

première estimation est votre schéma définit un tableau de sous-documents, et mangoustes attend ce tableau pour contenir toujours que les instances de modèle mangouste, mais votre code met quelque chose d'autre là-dedans, probablement quelques objets javascript simples au lieu d'instances de modèle mongoose, qui contiennent une propriété _doc qui représente le document mongodb sous-jacent.

Vous avez juste besoin de mettre "mongoose": "3.5.x" dans votre package.json, pas l'URL complète.

+0

Vous avez parfaitement raison. J'utilise un tableau. –

+0

Je ne comprends pas. Je ne peux pas avoir d'objets normaux mongoose dans ma matrice? –

+1

Vos modèles de mangoustes doivent être conformes à un schéma. Vous pouvez utiliser '[mongoose.Schema.Types.Mixed]' si vous voulez autoriser des types d'objets hétérogènes dans votre tableau, mais si votre schéma déclare que le tableau contient d'autres modèles comme '[SomeOtherSchema]', alors mongoose n'attend que des instances SomeOtherModel dans ce tableau. –

Questions connexes