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

时间:2015-01-04 17:44:41

标签: javascript node.js express router

我使用Node,Express& amp;猫鼬。目前它将模板呈现给前端,但我想将功能扩展到完整的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条路由。

1 个答案:

答案 0 :(得分:4)

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

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

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