Multer意外的字段错误处理

问题描述 投票:0回答:1

使用我的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
    }
});
node.js multer multer-s3
1个回答
0
投票

这样做可以捕获意外的字段错误

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
  })
})
© www.soinside.com 2019 - 2024. All rights reserved.