ExpressJS中同一路由函数的多个路径

Multiple paths for same route function in ExpressJS

本文关键字:路径 函数 路由 ExpressJS      更新时间:2023-09-26

我用Node、Express和Mongoose构建了一个服务。目前它将模板呈现到前端,但我想将功能扩展到完整的 API。

我想为要返回的每种类型的资源使用单个路由,并带有一个标志,以告诉服务器返回 API 内容或呈现视图并使用 HTML 进行响应。

这方面的示例如下:

  • /users/:userId
  • /api/users/:userId

两者都将使用相同的函数(即 users.getOne ),然后检查路径api是否存在并相应地发送正确的响应。

我显然可以做到以下几点:

app.get( '/users/:userId', users.getOne );
app.get( '/api/users/:userId', users.getOne );

并签入响应处理程序,尽管我宁愿不为每个资源定义 2 个路由。

您可以在路由路径中使用路径模式或正则表达式。

使用路径模式,您的路由将如下所示:

app.get( '(/api)?/users/:userId', users.getOne );