使用multer(MEAN堆栈)不需要文件选项

时间:2016-11-02 21:36:55

标签: node.js mongodb express mean-stack multer

我遇到了创建我的第一个RESTapi应用程序的问题。

我有一个multer模块,用于获取使用表单上传的文件,一切正常,直到我提供文件。

如果没有提供该文件,那么我的应用程序崩溃,所以如果有人在我的API中触发帖子路线以创建新实体(例如使用curl),应用程序将崩溃。

使用multer上传时,似乎总是需要文件。

我的router.post看起来像这样:

// First Image
    image.src = "your image link for first image here";
    link.title = "Movie title ex Batman (2008)";
    tooltipname.href = "link to site when movie is clicked";
    namebelowimg.innerHTML = "movie name here";
// End First Image

所以问题是:

是否可以将“file”字段留空并仍然只是在没有fileName字段的情况下将数据保存到db?提前谢谢!

1 个答案:

答案 0 :(得分:1)

这不是multer需要一个文件 - 你只需要防止req.file未定义。您正在引用req.file.filename而不检查req.file是否存在。只需检查它是否存在,如果是,则在电影上设置文件名:

router.post('/movies', upload.single('image'), function(req, res, next) {
  var movie = new Movie(req.body);
  if(req.file) movie.fileName = req.file.filename;
  movie.save(function(err, movie){
      if(err) return next(err);
      res.json(movie);
  });
});