Обработка неожиданных полевых ошибок Multer
Маршрут с моим промежуточным программным обеспечением проходит примерно так.
router.post('my-route-path', multer.single('file'), controllerFunc)
Функция multer, которую я определил, - разрешить загрузку одного файла в файловую систему. Все работает нормально, проблема в том, если я должен определить имя поля, которое будет file
Если в моем клиентском запросе я установил имя поля как file
это прекрасно работает Но если я дам xyz
затем выдает ошибку. В чем проблема, я не могу уловить эту ошибку, в моем catch(e)
блок моего обещания.
Это ошибка, которую я получаю
Error: Unexpected field
at makeError (F:\Servup\chat\node_modules\multer\lib\make-error.js:12:13)
at wrappedFileFilter (F:\Servup\chat\node_modules\multer\index.js:40:19)
at Busboy.<anonymous> (F:\Servup\chat\node_modules\multer\lib\make-middleware.js:114:7)
at emitMany (events.js:146:13)
at Busboy.emit (events.js:223:7)
at Busboy.emit (F:\Servup\chat\node_modules\busboy\lib\main.js:38:33)
at PartStream.<anonymous> (F:\Servup\chat\node_modules\busboy\lib\types\multipart.js:213:13)
at emitOne (events.js:115:13)
at PartStream.emit (events.js:210:7)
at HeaderParser.<anonymous> (F:\Servup\chat\node_modules\dicer\lib\Dicer.js:51:16)
at emitOne (events.js:115:13)
at HeaderParser.emit (events.js:210:7)
at HeaderParser._finish (F:\Servup\chat\node_modules\dicer\lib\HeaderParser.js:68:8)
at SBMH.<anonymous> (F:\Servup\chat\node_modules\dicer\lib\HeaderParser.js:40:12)
at emitOne (events.js:115:13)
at SBMH.emit (events.js:210:7)
Текущая реализация, которую я попробовал в моем catch
Блок был этим. (это не работает)
catch(e => {
if (e === 'Unexpected field') {
// catch that error here
}
});
1 ответ
Вы можете обнаружить непредвиденную ошибку поля, выполнив это
URL: https://www.npmjs.com/package/multer
var upload = multer().single('avatar')
app.post('/profile', function (req, res) {
upload(req, res, function (err) {
if (err) {
// An error occurred when uploading
return
}
// Everything went fine
})
})