javascript - ExpressJS 中同一路由功能的多个路径

标签 javascript node.js express router

我使用 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/

相关文章:

javascript - 神秘码:+ i +和+ x +

javascript - 正则表达式删除所有不跟在数字后面的句点

node.js - 如何在nodejs中使用goto语句?

javascript - Angular JS 1.5 Component html 内容在浏览器中显示为注释掉

Javascript:Chrome 中发生关闭选项卡事件时执行代码

angularjs - Mongo Giving 'duplicate key error' 在非唯一字段上

javascript - 如何使用 Socket.io 在 Node.js 中添加房间?

angularjs - NodeJS和AngularJS : Download file $http. get()并保存到文件夹

javascript - 意外的 token U Ajax 语法错误

node.js - 来自 Node.js 的 MongoDB 查询 (express-coffeescript-mongodb)