【发布时间】:2018-07-21 05:38:03
【问题描述】:
我正在尝试使用 multer 在 express 中上传文件图像,并且文件正在目录中上传,但文件名未保存在数据库中。我正在使用带有 express 的 mongodb。文件名保存为 noimage.png。
routes/posts.js:-
router.post('/add', function(req, res, next) {
if(req.files.mainimage){
console.log('Uploading files...');
// File Info
var mainImageOriginalName = req.files.mainimage.originalname;
var mainImageName = req.files.mainimage.name;
var mainImageMime = req.files.mainimage.mimetype;
var mainImagePath = req.files.mainimage.path;
var mainImageExt = req.files.mainimage.extension;
var mainImageSize = req.files.mainimage.size;
}
else{
var mainImageName = 'noimage.png';
}
//console.log(req.files.mainimage.name);
// Check for errors
var errors = req.validationErrors();
if(errors){
res.render('add', {
errors: errors,
});
}
else{
var posts = db.get('posts');
// Submit to db
posts.insert({
mainimage: mainImageName
}, function(err, post){
if(err){
res.send('There was an issue submitting the post');
}
else{
req.flash('success', 'Post Submitted');
res.location('/posts');
res.redirect('/posts');
}
});
}
});
【问题讨论】:
-
如果使用 mainImageOriginalName 而不是 mainImageName(第 31 行)将其保存到 DB 会发生什么?
-
其实 req.files.mainimage 返回 false。所以,进入 else 块。
-
你试过用 req.file 代替 req.files 吗?您是上传一张图片还是多张图片?您能否发布完整的 posts.js 文件,以便我们确保您的依赖项正确无误?
-
是的,我已经尝试过 req.file,但没有成功,抛出错误作为未定义的属性。
-
这是在 github 上还是其他什么东西让我可以查看整个项目?
标签: javascript node.js express pug