我试图用猫鼬在数据库中的对象数组中添加一个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);