Я использую multer как express связующее ПО для загрузки файла следующим образом:
const upload = multer().single('fieldName');
router.post(
'/',
upload,
(req, res) => {
console.log(req.file)
}
);
Работает нормально, за исключением случаев, когда я отправил форму без файла. Тогда, очевидно, промежуточное программное обеспечение для загрузки просто пропущено, и req.file
равно undefined
.
Я попытался добавить фильтр примерно так, но, по-видимому, функция фильтра не вызывается, когда файла нет:
function fileFilter(req, file, cb) {
console.log('filtering'); //never reached when file is missing
if (!file) {
return cb(new Error('no file', false));
}
cb(null, true);
}
const upload = multer({fileFilter: fileFilter}).single('fieldName');
router.post(...)
Есть ли способ обработать отсутствующий файл в промежуточном программном обеспечении Multer? Или я должен проверить позже?