我正在使用Formidable和Node.js的fa-extra模块在MongoDB中存储文件。插入时它正在工作。但是我没有得到如何使用Formidable进行更新。
form.on('file',function(field, file){
var temp = file.path;
var fileName = file.name;
var fileName = file.name;
var location = 'images/';
var cpLocation = 'empDetails/images/';
empData.imgSize = file.size;*here empData is my instance of model*
empData.imgType = file.type;
empData.picFile = location+fileName; **picFile is my mongodb row name in collection**
fs.copy(temp,cpLocation+fileName ,function(err){
if(err)
{
console.log(err);
}
});
});
form.on('end',function(fields, files){
empData.save(function(err,resobj){
if(err)
{
throw err;
}
});
});
empData
是我的模型的对象,用于存储这些文件。到此为止没有问题。但我不知道如何在MongoDB中更改图像和更新。我的更新查询如下。
exports.updateEmpData=function(req,res){
var temp = req.param('empID');
console.log(temp,'hjsdbjhdvbdhfvbdhbvj');
EmpDetail.findByIdAndUpdate({_id:temp},{$set:{"picFile":req.body.picFile},
function(err,obj){
if(err){
return err;
}
else{
res.json(obj);
}
});
};
答案 0 :(得分:0)
您的findByIdAndUpdate方法看起来不对。正确的语法是:
Model.findByIdAndUpdate(id, updateObj, {new: true}, function(err, model)
因此,在您的情况下,语法将是:
EmpDetail.findByIdAndUpdate(temp,{$set:{"picFile":req.body.picFile},
function(err,obj){
if(err){
return err;
}
else{
res.json(obj);
}
});
参考:Link