使用express.Router时使用错误中间件

时间:2018-07-31 09:30:12

标签: node.js express

我想在我的应用中使用express.Router。 我有一个运行服务器的文件索引文件。 借助express.Router,文件路由可以运行一些快速路由。

我想要的是,每当我的一条路由失败时,到达索引中定义的错误中间件;

在上面的示例中: -当我使用ok路线时,它可行 -当我使用路由不正确时,将抛出错误而未到达错误中间件。

你知道如何实现吗?

谢谢!

https://gist.github.com/VivienAdnot/e3cf44de745531c6cca7be5de53c341a

2 个答案:

答案 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();
});
相关问题