我遇到了创建我的第一个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?提前谢谢!
答案 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);
});
});