Enchaînement de mon cerveau pour créer un document incorporé avec Mongoose. Je reçois l'erreur suivante lorsque je soumets la forme:Création de documents incorporés avec Mongoose et Express
500 CastError: Moulage à undefined_method a échoué pour la valeur "commentaire va ici"
Code:
index.js
var db = require('mongoose');
var Todo = db.model('Todo');
exports.create = function(req, res, next){
new Todo({
title : req.body.title,
content : req.body.content,
comments : req.body.comments,
}).save(function(err, todo, count){
if(err) return next(err);
res.redirect('/');
});
};
db.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// recursive embedded-document schema
var commentSchema = new Schema();
commentSchema.add({
content : String
, comments : [Comment]
});
var Comment = mongoose.model('Comment', commentSchema);
var todoSchema = new Schema({
title : { type: String, required: true }
, content : String
, comments : [Comment]
});
var Todo = mongoose.model('Todo', todoSchema);
Jade forme
form(action="/create", method="post", accept-charset="utf-8")
input.inputs(type="text", name="title")
input.inputs(type="text", name="content")
input.inputs(type="text", name="comments")
input(type="submit", value="save")
Je viens d'essayer votre code et enlevé la première des années par des virgules sur le schéma. Voici l'erreur que j'ai reçu: express 500 TypeError: ne peut pas utiliser opérateur « in » pour rechercher « _id » dans le commentaire va ici – omer3210
Je pense que le problème réside dans le code Express sur index.js – omer3210
Ah oui, vous pouvez Il ne suffit pas de coller un tableau d'objets javascript dans les commentaires, vous devez les convertir en instances de modèle de commentaire mongoose d'abord, puis enregistrez le Todo avec les commentaires incorporés. –