Почему я получаю сообщение «ENOENT: нет такого файла или каталога, открыт» при попытке сохранить изображение через хранилище Multer? - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь использовать multer для сохранения изображения на моем сервере, а точнее, в папке public/images/servers. К сожалению, я получаю сообщение об ошибке:

[Error: ENOENT: no such file or directory, open 'C:\MAMP\htdocs\Chat Backend\public\images\servers\2020-08-07T12:33:31.556Z-aohan-chen-.jpg'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\\MAMP\\htdocs\\Chat Backend\\public\\images\\servers\\2020-08-07T12:33:31.556Z-aohan-chen-.jpg',
  storageErrors: []
}

Я не уверен, почему там написано, что нет такого файла или каталога, когда все до этого существует - 'C:\MAMP\htdocs\Chat Backend\public\images\servers'. Осталось только Multer сохранить изображение в папке серверов.

var multer = require('multer');

var storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'public/images/servers')
    },
    filename: (req, file, cb) => {
        cb(null, new Date().toISOString() + '-' + file.originalname)
    }
})

var fileFilter = (req, file, cb) => {
    if (file.mimetype === 'image/png' || file.mimetype === 'image/jpg' || file.mimetype === 'image/jpeg') {
        cb(null, true)
    } else {
        cb(null, false)
    }
}

app.use(multer({ storage: storage, fileFilter: fileFilter }).single('image'));
...