我想在我的应用中使用express.Router。 我有一个运行服务器的文件索引文件。 借助express.Router,文件路由可以运行一些快速路由。
我想要的是,每当我的一条路由失败时,到达索引中定义的错误中间件;
在上面的示例中: -当我使用ok路线时,它可行 -当我使用路由不正确时,将抛出错误而未到达错误中间件。
你知道如何实现吗?
谢谢!
https://gist.github.com/VivienAdnot/e3cf44de745531c6cca7be5de53c341a
答案 0 :(得分:1)
查看您的代码,我可以看到您在错误处理程序中间件中缺少'next'参数,因为需要'next'才能将控件传递到下一条匹配的路由。只需将 index.js 中的中间件代码更改为
app.use((err, req, res, next) => {
console.log('error mw reached');
res.status(500);
res.end();
next();
});
它有效。
答案 1 :(得分:0)
我的错误中间件名称不正确...
// doesn't work
app.use((err, req, res) => {
console.log('error mw reached');
res.status(500);
res.end();
});
收件人:
//works
app.use((err, req, res, next) => {
console.log('error mw reached');
res.status(500);
res.end();
});