ExpressJS 中相同路由功能的多个路径
Multiple paths for same route function in ExpressJS
我已经使用 Node、Express 和 Mongoose 构建了一个服务。目前它将模板呈现到前端,但我想将功能扩展到完整的 API.
我想为每种类型的资源使用单一路由 returned 并带有标志以告诉服务器 return 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 );
我已经使用 Node、Express 和 Mongoose 构建了一个服务。目前它将模板呈现到前端,但我想将功能扩展到完整的 API.
我想为每种类型的资源使用单一路由 returned 并带有标志以告诉服务器 return 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 );