我使用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条路由。
答案 0 :(得分:4)
您可以在路径路径中使用路径模式或正则表达式。
使用路径模式,您的路线将如下所示:
app.get( '(/api)?/users/:userId', users.getOne );