NodeJS - Как я могу вернуть пользовательскую ошибку, используя загрузку изображений с multer-s3? - PullRequest
0 голосов
/ 20 сентября 2018

Я пытался вернуть пользовательскую ошибку при неудаче при попытке загрузить изображение с помощью multer-s3.

Это мои текущие настройки s3-multer:

var upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: myBucket,
    fileFilter: (res, file, callback) => {
        var ext = path.extname(file.originalname);
        if(ext !== '.png' && ext !== '.jpg' && ext !== '.jpeg') {
            res.status(400).send('Please upload only images')
        }
        callback(null, true)
    },
    acl: 'public-read',
    contentType: multerS3.AUTO_CONTENT_TYPE,
    key: function (req, file, cb) {
        uuidFileName = uuidv4();
        fileNamesArray.push(uuidFileName);
        if (!file.originalname.match(/\.(jpg|jpeg|png|gif)$/)) {
            return cb(new Error('Please upload only images'));
        }
        cb(null, uuidFolderName + '/' + uuidFileName + '.' + mime.getExtension(file.mimetype))
    }
  })
})

Поскольку более старый метод был вычтен, сейчас я должен включить реализацию if(err) в фактический вызов uploadmethod.

upload.fields(
[
    { name: '1stImage', maxCount: 1 },
    { name: '2ndImage', maxCount: 1 },
    { name: '3rdImage', maxCount: 1 },
    { name: '4thImage', maxCount: 1 },
    { name: '5thImage', maxCount: 1 }
]),
(req, res, next) => {

    if(err){
        return 'An error occurred while trying to upload the file.';
    }

Я просто не могу понять, где реализовать 'err', сейчас он не определен.

** Edit ** Я только что понял, onError устарело, из этой темы: [ Обработка ошибок при загрузке файла с использованием multer с expressjs
Есть идеи?

Спасибо.

...