Я использую Multer в качестве промежуточного программного обеспечения Express.В моем примере я проверяю правильность расширения файла и mimetype (для волнового файла) и хочу ответить 415, если это не так.Однако я не знаю, как это сделать с помощью Multer fileFilter
, поэтому я проверяю, существует ли файл в объекте запроса обработчика маршрутизатора, что немного неловко.Также, возможно, я хочу реализовать другие fileFilter
и коды ошибок в будущем.Есть ли рекомендуемый шаблон для установки статусов ответов с помощью Multer в Express?
const upload = multer(
{
dest: UPLOAD_PATH,
fileFilter: function(req, file, cb) {
const filetypes = /wave|wav/;
const mimetype = filetypes.test(file.mimetype);
const extname = filetypes.test(
path.extname(file.originalname).toLowerCase());
cb(null, (mimetype && extname));
},
}
);
router.post('/', upload.single('wave'), (req, res) => {
const file = req.file;
if (!file) {
return res.status(415).send('Only audio/wav files are supported.');
}
// Do some async task with file
return res.sendStatus(200);
});