我正在寻找使用库routing-controllers时通用错误处理的解决方案。
我的自定义错误处理应该能够捕获Promise
来自 的任何被拒绝的 s,从中Controller
构建响应主体并根据响应上的错误类型设置 HTTP 代码。我不喜欢 Koa 默认的错误处理,因为我想吐出我的自定义响应正文(不是堆栈跟踪等......)。
在示例中描述的简单设置中,通过传递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)
}
});
我不确定我做错了什么,或者这两种方法不兼容。如果是后者:是否有人对概述的问题有解决方案?