ExpressJS 中相同路由功能的多个路径

Multiple paths for same route function in ExpressJS

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

我想为每种类型的资源使用单一路由 returned 并带有标志以告诉服务器 return API 内容或呈现查看并回复 HTML.

示例如下:

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

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

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

并检查响应处理程序,但我不想为每个资源定义 2 个路由。

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

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

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