Express 4:中间件分支

时间:2015-07-02 19:47:04

标签: javascript node.js express

我有一个Express应用程序,我在路由处理程序之后使用中间件格式化我的响应。因此,在向res对象添加数据后,我的所有路由都在调用next()来调用格式化程序。

我想在逻辑上处理404s。但是,我不能轻易地使用app中间件,因为我的所有路由处理程序都调用next();创建一个catchall路由(app.use('*', 404function...))意味着一切都变成404错误,甚至是正确的路由。

有没有办法判断路由是否与处理程序中的任何内容不匹配?或者,有没有办法让路由专门调用错误中间件(arity为4的函数)?

1 个答案:

答案 0 :(得分:2)

您可以检查格式化程序中是否定义了req.route。如果是,则请求与路由匹配,您可以格式化响应数据;否则,要么在现场生成404,要么使用next传递它。