2016-07-13 5 views
1

'アバター'属性が定義されている場合にのみ変更する方法を教えてください。 VARアバター= req.file:Mongoose.js定義済み/変更されている場合のみ単一の属性を更新する

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

私はこのような何かを探していますか? req.file.fieldname:user.avatar;

その後、任意の助けをいただければ幸い「findOneAndUpdate」

の更新のparam内のvarアバターを使用!

ありがとうございます!

答えて

1

私はあなたのアプリやそのロジックを知らないので、あなたがパースしてアバターを定義する方法を知らないので、投稿したものに似ている可能性があります。

それ以外の場合は、このような単純な操作を行うことができます。

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'); 
    }); 
} 
関連する問題