我正在寻找一个使用库routing-controllers的广义错误处理的解决方案 .

我的自定义错误处理应该能够捕获来自 Controller 的任何被拒绝的 Promise ,从中构建响应主体并根据响应上的错误类型设置HTTP代码 . 我不喜欢Koa默认的错误处理,因为我想吐出我的自定义响应体(不是堆栈跟踪等) .

example中描述的简单设置上,在应用程序初始化时传递 Controller ,不再可能使用Koa wiki中描述的Koa错误处理 .

详细地说,我将应用程序设置为:

const app = createExpressServer({
   controllers: [UserController]
});
app.listen(3000);

并尝试通过以下方式添加错误处理程序:

app.use(async (ctx, next) => {
  try {
    await next();
  } catch (err) {
    console.log(err)
  }
});

我不确定我做错了什么,或者这两种方法是不兼容的 . 如果是后者:有没有人有解决问题的方法?