在保存节点J之前发送数据

时间:2018-01-29 19:35:56

标签: javascript node.js mongodb

我有一个Post函数,我想在数据库中插入数据(MongoDB)。首先,我想将数据保存在模型" Recetas"在模型"用户"之后。最后发送回复。我的问题是没有在模型用户中保存,而是在保存之前发送数据。

这是我的代码

addReceta = function (req, res) {

        User.findById(req.params.id, function(err, user){
            if (!user){
                res.send(404, 'User not found');
            }
            else{
                fs.readFile(req.files.file.path, function (err, data) {
                    var id = crypto.randomBytes(16).toString("hex");
                    var newPath = pwd + id +req.files.file.originalFilename;
                        fs.writeFile(newPath, data, function (err) {
                            var date_created = new Date();
                            var date  = date_created.toISOString().slice(0,10);
                            var receta = new Receta({
                                Titulo:  datos2.titulo,
                                Username:  datos2.username,
                                Ingredientes:  datos2.ingredientes,
                                Dificultad:  datos2.dificultad,
                                Descripción: datos2.descripcion,
                                Personas:  datos2.personas,
                                Date_Created: date_created,
                                Tiempo:  datos2.tiempo,
                                user_id: req.params.id,
                                imageUrl: URL + id + req.files.file.originalFilename
                            })
                            receta.save(function(err) {
                                if(!err) {
                                    console.log('Created in Receta');
                                } 
                                else {
                                    console.log(error);
                                }
                            });
                            var UserReceta = ({
                                _id: receta._id,
                                Titulo : receta.Titulo,
                                Username : receta.Username,
                                Descripción : receta.Descripción,
                                Ingredientes : receta.Ingredientes,
                                Dificultad : receta.Dificultad,
                                Personas : receta.Personas,
                                Date_Created: date_created,
                                Tiempo : receta.Tiempo,
                                user_id : receta.user_id,
                                imageUrl: receta.imageUrl
                            });
                            user.Recetas.push(UserReceta);
                            user.save(function (err){
                                if (!err) {
                                    console.log('Created in User Recetas');
                                } 
                                else {
                                    res.send(500, err);
                                }
                            });
                            res.send(receta);
                        });
                });
            };
        });
    };

1 个答案:

答案 0 :(得分:0)

在console.log之后立即保存在用户后,将res.send(receta);置于回调中:

console.log('Created in User Recetas');
res.send(receta);