node.js - 表达4参数条件

标签 node.js express routes

我想要以下路线:

// Services without csrf()
router.get('/user/:uid', userRes.findUser, userRes.GETUser);
router.post('/user/:uid', userRes.findUser, userRes.POSTUser);

// Rest of routes, with csrf()
router.use(csrf());

router.post('/user/subscribe', indexRes.POSTSubscribe);

但是这里发生的情况是 POST/user/subscribe 匹配第二条路由。

我一直在阅读Express routes parameter conditions但它展示了如何过滤数字。我想过滤“订阅”路径:

还有机会吗?

最佳答案

您可以使用router.param:

var staticUserPaths = ['subscribe'];
router.param('uid', function (req, res, next, id) {
  if (~staticUserPaths.indexOf(id)) {
    next('route');
  } else {
    next();
  }
});

关于node.js - 表达4参数条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410461/

相关文章:

node.js - 扩展 Mongoose 模型而不存储所有属性

ruby-on-rails - 了解 routes.rb 文件中符号的用法

javascript - async.waterfall 的简单实现是什么?

javascript - 在 Node.js 中写入文件

node.js - Google App Engine 灵活获取对包动态创建的文件夹的访问权限?

node.js - PM2:无法访问应用程序(ERR_CONNECTION_REFUSED)

javascript - 如何修复path.json不是一个函数

node.js - 在 winston 中使用自定义格式化程序记录错误

ruby-on-rails - 修改 URL 模式 Ruby Rails

ruby-on-rails - rails 设计,没有路由匹配注销