【问题标题】:a second insertion in mongoose第二次插入猫鼬
【发布时间】:2013-12-20 04:20:21
【问题描述】:

当我在同一个回调中插入不同的集合时遇到问题,抱歉我的英语是谷歌翻译的

我的模型

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");
                }
            });

        }
    }
}

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

【问题讨论】:

  • 代码第二次尝试保存时出现什么错误?
  • 确保在使用回调时,正确声明所有参数:nuevaBodega.save(function () { ===> nuevaBodega.save(function (err, results) {
  • 在询问我注意到了什么之后,但继续出现错误 =S typeError undefined is not a function

标签: node.js express mongoose


【解决方案1】:

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

祝你好运!

【讨论】:

  • @soldat25 这有帮助吗?
猜你喜欢
  • 1970-01-01
  • 2014-07-15
  • 2013-05-19
  • 2019-10-26
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2014-12-22
相关资源
最近更新 更多