猫鼬的第二次插入

时间:2013-11-18 19:11:46

标签: node.js express mongoose

当我在同一个回调中插入不同的集合时出现问题,对不起,我的英语是谷歌翻译

我的模特

var mongos = require("mongoose");
var Schema = mongos.Schema;

var bodegas = new Schema({
    idmayor:String, 
    bodegas:String
});

exports.bodegas = mongos.model("bodega",bodegas);


var mongos = require("mongoose");
var Schema = mongos.Schema;

var empleados = new Schema({
    idmayor:String,
    nombre:String,
    correo:String,
    contraseña:String,
    bodega:String,
    activa:Boolean
});

exports.empleados = mongos.model("empleado",empleados);

和我的控制

exports.ingrese = function (req, res, next) {
    var id = req.session.paentro.id;
    var nombre = req.body.nombre;
    var correoElectronico = req.body.correo;
    var bodega = req.body.bodega;

    var InfoNuevoEmpleado = {
        idmayor: id,
        nombre: nombre,
        correo: correoElectronico,
        contraseñ a: "",
        bodega: bodega,
        activa: false
    };

    var nuevoEmpleado = new madb.empleados(InfoNuevoEmpleado);
    nuevoEmpleado.save(soyanonima);

    function soyanonima(err, resultado) {
        if (err) {
            res.send('Ha ocurrido un error porfavor intentalo mas tarde');
        } else {
            console.log('se ha ingresado como: \n' + resultado);
            var titulo = 'Hola nuevo abministrador';
            var mensage = 'hola se te ha creado una cuenta en el <b>manejador de inventario</b> ' +
                'porfavor dirigete al enlase abjunto para cambiar la contraseña ' +
                '<a href="localhost:3000/empleado/' + resultado.id + '"> aqui </a>';
            correo.enviar(titulo, mensage, correoElectronico);

            var InfoBodega = {
                idmayor: resultado.id,
                bodega: resultado.bodega
            };

            var nuevaBodega = new bodega.bodegas(InfoBodega);
            console.log(InfoBodega);
            nuevaBodega.save(function () {
                if (err) {
                    console.log("hay jueputa echele agua");
                } else {
                    res.send("Guardado");
                }
            });

        }
    }
}

当我尝试在另一个集合中插入第二次时,会产生问题。

1 个答案:

答案 0 :(得分:0)

问题在于您尝试使用未定义的模型创建对象,您已将bodega的变量设置为等于req.body.bodega,其中此值可能是字符串。然后,当你试图得到一个字符串的bodegas时,未定义为什么你会得到错误。相反,您应该导入您拥有模型的文件var bodega_model = require('bodega.js'),并使用var nuevaBodega = bodega_model.bodegas(infoBodega)定义您的对象,这样可行。尝试通过将bodega模型打印到控制台来调试它。

祝你好运!