更新图像时,它不会保存在数据库中

while updating image it is not saved in database

本文关键字:保存 存在 数据库 图像 更新      更新时间:2023-09-26

我正在使用Formidable和Node的fa-extra模块.js在MongoDB中存储文件。当我插入时它正在工作。但我没有得到如何使用强大的更新。

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

你的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);
  }
});

参考: 链接