仅当属性“avatar”已定义时,我该如何更改它?
update: function(req, res){
Student.findOneAndUpdate({ _id: req.params.id }, {
first_name : req.body.first_name,
last_name : req.body.last_name,
_school : req.body._school,
_teacher : req.body._teacher,
grade : req.body.grade,
language : req.body.language,
avatar : avatar,
address : req.body.address,
city : req.body.city,
state : req.body.state,
zip : req.body.zip,
_guardians : req.body._guardians,
updated_at : req.body.updated_at,
active : req.body.active },
function(err, student){
if(err) res.render('error', { error: 'Error updating student'});
res.redirect('/admin/students');
});
}
我正在寻找这样的东西: var 头像 = req.file ? req.file.fieldname : 用户.头像;
然后在“findOneAndUpdate”的更新参数中使用 var 头像
任何帮助将不胜感激!
谢谢!
最佳答案
我不知道你的应用程序或其逻辑,所以我不知道你想如何解析和定义头像,所以这取决于你(它可以类似于你发布的内容)。
但除此之外,你可以做一些像这样简单的事情。
update: function(req, res){
var options = {
first_name : req.body.first_name,
last_name : req.body.last_name,
_school : req.body._school,
_teacher : req.body._teacher,
grade : req.body.grade,
language : req.body.language,
address : req.body.address,
city : req.body.city,
state : req.body.state,
zip : req.body.zip,
_guardians : req.body._guardians,
updated_at : req.body.updated_at,
active : req.body.active }
if (avatar) {
options.avatar = avatar;
}
Student.findOneAndUpdate({ _id: req.params.id }, options,
function(err, student){
if(err) res.render('error', { error: 'Error updating student'});
res.redirect('/admin/students');
});
}
关于node.js - Mongoose.js 仅在定义/更改时更新单个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38353221/