我使用 Node、Express 和 Mongoose 构建了一项服务。目前它会将模板渲染到前端,但我想将功能扩展到完整的 API。
我想对每种类型的资源使用一个路由,并带有一个标志来告诉服务器返回 API 内容或渲染 View 并使用 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 );
关于javascript - ExpressJS 中同一路由功能的多个路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27768439/