【问题标题】:Images are not storing in Database using multer图像未使用 multer 存储在数据库中
【发布时间】:2016-10-24 18:35:10
【问题描述】:

我正在尝试将图像存储在本地文件夹中,并使用 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');

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

谢谢,

【问题讨论】:

  • 如何在路由中注册 multer 中间件?能否也提供这段代码?
  • apiRoutes.post('/adcreate',upload ,function(req, res, next){ /*---- insert data code--*/ })
  • 刚刚在下面发布了一个答案。此中间件已正确注册,错误在您的 multer 配置的定义中。
  • @Svabael 以上发布的代码在我的上一个应用程序中运行良好。但它不适用于我当前的应用程序。我无法找到错误。请帮帮我。

标签: node.js mongodb multer


【解决方案1】:

您的错误在于 multer 文件名配置。您在其中使用了 images 变量,这就是为什么没有将图像存储在正确的路径中而仅使用 .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);
  }
});

【讨论】:

  • @SaurabhSharma 错误是什么?您之前没有发布错误。您刚才说图像没有以正确的名称和正确的目录保存。你有这个结果了吗?
  • 是的....我的控制台上没有显示任何错误。我发布了这个问题,因为我无法将图像存储在 mongodb 中的文件夹和图像名称中
  • @SaurabhSharma 您发布的代码 sn-p 不会在 mongo 中保存任何内容。它只会将其保存在您在此处指定的目录中:var uploadDir=__dirname+ '/assets/images';
  • 我知道...上面的代码 sn-p 不会将图像名称保存在数据库中。但我将使用image 变量将其保存在数据库中。比如apiRoutes.post('/adcreate',upload ,function(req, res, next){ var ad=new admodel({image:image}) ; ad.save(function(err, data){ if(err){ return res.json({success:false, msg:'Ad not Posted'}); }else{ res.json({succes:true, msg:'Successfully ad Posted'}); } }); });
  • 这一行是错误的var ad=new admodel({image:image}) ;。 image 变量是什么?您需要从 req.file 中检索数据。它是在全局上下文中定义的图像变量,与您的请求无关
猜你喜欢
  • 2019-12-27
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 2020-10-17
  • 2012-10-17
相关资源
最近更新 更多