update tutorial node español javascript node.js mongodb model save

javascript - tutorial - Los datos del modelo Mongoose no se guardaron



node js mongodb tutorial español (1)

Estoy trabajando en un proyecto de nodejs, usando mongoose y mongodb, y cuando manejo una lógica de actualización de perfil, trato de publicar algunos datos en el servidor incluyendo una carga de fotos de perfil, uso formidable para manejar la carga de archivos y no hay problema, pero los campos de mi otra forma no se guardan, incluso no hay ningún mensaje de error, debajo está el código de la ruta, por favor, ayúdenme a dónde va mal.

router.post(''/api/profileUpdate/:username'', function(req, res, next) { User.findOne({ username: req.params.username }, function(err, user) { if (err) { console.log(err); } else { if (user) { console.log(''user found, going to update ...''); user.age = req.body.age; user.gender = req.body.gender; user.description = req.body.description; user.occupation = req.body.occupation; var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files) { //res.writeHead(200, {''content-type'': ''text/plain''}); //res.write(''received upload:/n/n''); res.end(util.inspect({fields: fields, files: files})); }); form.on(''end'', function(fields, files) { console.log(fields); console.log(req.body.age); console.log(files); if (this.openedFiles[0]) { /* Temporary location of our uploaded file */ var temp_path = this.openedFiles[0].path; /* The file name of the uploaded file */ var file_name = this.openedFiles[0].name; /* Location where we want to copy the uploaded file */ var new_location = ''public/images/uploads/''; fs.copy(temp_path, new_location + file_name, function(err) { if (err) { console.error(err); } else { user.profile_photo = ''/images/uploads/'' + file_name + ''?dim=200''; console.log(user.profile_photo); console.log("success!") // save the data user.save(function(err) { if (err){ console.log(''Error in Saving user: ''+err); throw err; } console.log(''User update succesful''); console.log(user.username); console.log(user.profile_photo); }); } }); } else { } }); res.redirect(req.url); } } }); });


Pruebe este otro enfoque para ver si los archivos y campos están llegando:

var fields=[] var files = [] form.on(''field'', function(field, value) { fields.push([field, value]); }) form.on(''file'', function(field, file) { console.log(file.name); files.push([field, file]); }) form.on(''end'', function() { console.log(''done''); console.log(files) console.log(fields) });