如何自定义@koa/multer的返回错误码

来源:17-19 Koa 的错误处理

慕姐2849259

2023-08-10

老师好:
我在

const upload = multer({
  limits: {
    files: 3, // 设置允许上传的最大文件数量
  },
  fileFilter: (req, file, cb) => {
    if (!file.originalname.match(/\.(jpg|jpeg|png|json|js)$/)) {
      return cb(new Error("Unexpected field")); // 返回自定义的错误信息
    }
    cb(null, true);
  },

设置了上传的最大文件数量和对文件类型上传的限制
在错误处理中

app.on("error", (err, ctx) => {
  switch (err.message) {
    case NAME_AND_AGE_IS_REQUIRED:
      ctx.status = 403;
      ctx.body = NAME_AND_AGE_IS_REQUIRED;
      break;
    case K_UNEXPECTED_FIELD:
      ctx.status = 403;
      ctx.body = K_UNEXPECTED_FIELD;
      break;
    case TOO_MANY_FILES:
      ctx.status = 403;
      ctx.body = TOO_MANY_FILES;
      break;
    default:
      break;
  }
}

我明明设置了错误码403,错误信息为Unexpected field,或者Too many files
但是,文件类型错,或者文件超限额收到的错误都是“Internal Server Error“
图片描述
请帮忙解答一下,谢谢

写回答

1回答

coder_monkey

2023-08-10

500 说明代码写的有问题 可以打打 log 调试调试或者仔细检查检查代码

0
2
coder_monkey
回复
慕姐2849259
一步步调试,可以通过 try catch 捕获
2023-08-10
共2条回复

Vue3+Uni+Node+MySQL 从零实现跨端小程序的全栈应用

小程序、 Vue3、Uni、NodeJs,全新300+技术点,实现跨端全栈应用

274 学习 · 155 问题

查看课程