在multer upload nodejs中发生错误时,如何将用户导航到同一页面

时间:2016-11-23 08:34:48

标签: node.js mongodb express multer

我正在为我的新项目做一些nodejs的实验并在Image上传中进行。我正在使用Express MVC和mongodb。我想将用户返回到同一页面,其中包含来自multer配置本身的验证错误。 multer的filename函数中没有响应参数。

var multer = require('multer');

var storage = multer.diskStorage({
 destination: function (request, file, callback) {
    callback(null, 'public/uploads/');
 },
    filename: function (request, file, callback) {// Validations & File Name can be set/changed here
    if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg') {
        console.log('File extensions required are png, jpg, jpeg');
        return false;
    } else {
        var rString = randomString.generate({ length: 12, charset: 'alphabetic' });
        callback(null, rString + '_' + Date.now() + path.extname(file.originalname));
    }
}
});

var upload = multer({ storage: storage }).single('displayImage');

我的路线是

router.route('/change-avatar')
.get(function (req, res) {
    res.render('views/profile/changeAvatar');
})
.post(function (req, res) {
    var id = req.session.userId;
    upload(req, res, function (err) {
        if (err) { console.log(err); return; } // if error
        console.log(req.files);
        response.end('Your File Uploaded');
        console.log('Photo Uploaded');
    });
});

怎么可能呢。

由于

1 个答案:

答案 0 :(得分:0)

至少显示你得到的错误,而不是显示'错误发布'。

但我客人问题是目的地路径不存在。

在&var; var storage'

之前尝试使用以下代码
require('mkdirp').sync('./public/uploads/enduser')

记得

npm i mkdirp --save