图像不使用multer存储在数据库中

时间:2016-10-24 10:21:01

标签: node.js mongodb multer

我正在尝试将图片存储在本地文件夹中,并使用multer使用以下代码将图像名称保存在mongodb中。

var uploadDir=__dirname+ '/assets/images';
var images='.jpg';
var storage=multer.diskStorage({
  destination:function(req, file, cb){
    cb(null, uploadDir);
  },
  filename:function(req, file, cb){
    console.log(file);
    image=Date.now()+images;
    callback(null, images);
  }
});
var upload=multer({storage:storage}).single('img');

但它不是将图像存储在本地文件夹中,而是仅在mongodb中的图像字段中保存.jpg字符串。我认为问题是filename:方法不起作用。请查看它并帮助我找到解决方案。

谢谢,

1 个答案:

答案 0 :(得分:0)

您的错误是在multer文件名配置中。您在那里使用了图像变量,这就是为什么没有将图像存储在正确的路径中并且仅使用.jpg名称。将var image定义为var是个好主意,否则将在全局命名空间中定义具有您无法预测的副作用。这应该有效:

var uploadDir=__dirname+ '/assets/images';
var images='.jpg';
var storage=multer.diskStorage({
  destination:function(req, file, cb){
    cb(null, uploadDir);
  },
  filename:function(req, file, cb){
    console.log(file);
    var image=Date.now()+images;
    callback(null, image);
  }
});