用猫鼬保存对象数组

时间:2018-07-18 18:20:33

标签: javascript node.js

我试图用猫鼬在数据库中的对象数组中添加一个JSON对象,但这会引发以下错误:


events.js:183       投掷者//未处理的“错误”事件       ^

TypeError:this._schema.caster.applySetters不是函数     在Array._cast(C:\ Users \ itsupport \ Documents \ Angular \ Directorio \ dirbackend-master \ node_modules \ mongoose \ lib \ types \ array.js:123:32)     在Array._mapCast(C:\ Users \ itsupport \ Documents \ Angular \ Directorio \ dirbackend-master \ node_modules \ mongoose \ lib \ types \ array.js:301:17)     在Arguments.map()     在Array.push(C:\ Users \ itsupport \ Documents \ Angular \ Directorio \ dirbackend-master \ node_modules \ mongoose \ lib \ types \ array.js:315:25)     在Usuario.findById(C:\ Users \ itsupport \ Documents \ Angular \ Directorio \ dirbackend-master \ routes \ upload.js:119:25)     在C:\ Users \ itsupport \ Documents \ Angular \ Directorio \ dirbackend-master \ node_modules \ mongoose \ lib \ model.js:4177:16     在process.nextTick(C:\ Users \ itsupport \ Documents \ Angular \ Directorio \ dirbackend-master \ node_modules \ mongoose \ lib \ query.js:2016:28)     在_combinedTickCallback(内部/进程/next_tick.js:131:7)     在process._tickCallback(internal / process / next_tick.js:180:9)


我的代码是:

function addPost(tipo, id, post_id, nombreImagen, res) {

        Usuario.findById(id, (err, myPost) => {


            // AGREGAMOS EL NUEVO POST AL USUARIO
            myPost.post.push({               
                    tipo: tipo,
                    imagen: nombreImagen,
                    post_id: post_id               
            });

            // GUARDAMOS LOS CAMBIOS EN LA BASE DE DATOS
            myPost.save((err, tipoActualizado) => {

                if (err) {
                    return res.status(500).json({
                        ok: false,
                        mensaje: 'error al guardar post',
                        error: err
                    })
                }    
                subirImagen();             
                myPost.password = ":)";
                return res.status(200).json({
                    ok: true,
                    mensaje: `Imagen actualizada correctamente`,
                    tipo: tipoActualizado
                })
            })
        })
    }

我的计划是:

    var mongoose = require('mongoose');
    var uniqueValidator = require('mongoose-unique-validator');

    var Schema = mongoose.Schema;

    var usuarioSchema = new Schema({

        nombre:     { type: String, required: [true, 'El nombre es necesario'] },
        post:       [{ 
                        type: Object, 
                        required: false, 
                        default: '' 
                    }]
    });

    usuarioSchema.plugin(uniqueValidator, { message: '{PATH} debe de ser único' });

module.exports = mongoose.model('Usuario', usuarioSchema);

0 个答案:

没有答案