我的 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
}
});