URL参数与Express中的正则表达式不匹配时捕获错误

时间:2018-10-03 13:09:46

标签: node.js express

我下面有一些代码:

app.get('/tx/:txhash([a-zA-Z0-9]{20,50})', (req, res) => {
  //do some work
}

我的问题是,如果参数与正则表达式模式不匹配,我会得到

Cannot GET /tx/8241fesf

但是我不确定如何发生自定义错误或重定向。我尝试读取res对象,但似乎完全跳过了该对象,因此未找到在SO上搜索的答案。

1 个答案:

答案 0 :(得分:0)

您可以使用快速处理程序处理404。

在您的主要express文件(可能是index.js或app.js)中,仅放在路由中间件之后。

app.use("/", your_router);

// catch 404 and forward to error handler
app.use((request, response, next) => {
  // Access response variable and handle it
  // response.status(404).send("Your page is not found"))
  // or
  // res.render("home")
});