【问题标题】:How to handle route urls with variable numbers in them in Node.js with express?如何在 Node.js 中使用 express 处理带有可变数字的路由 url?
【发布时间】:2016-08-25 18:57:22
【问题描述】:

在带有 express 的 node.js 中,我想要这样的 url 路由

app.get('/class/^(\d+)$/feedback', function (req, res) {

});

所以例如 /class/5/feedback 应该是有效的,但 node.js 正则表达式中的数字似乎不起作用。

有谁知道如何让它工作?

谢谢

【问题讨论】:

  • @omega 你为什么不用参数而不是正则表达式?
  • 移除“^”和“$”锚点。

标签: regex node.js express routing


【解决方案1】:

假设这个数字被称为“id”。这是更好的方法:

app.get('/class/:id/feedback', function (req, res) {
    var id = req.params.id;
});

:id 是通过 'params' 关键字访问的。

【讨论】:

    【解决方案2】:

    您需要从正则表达式中删除锚点(^$)并正确放置。您还需要将/ 转义为\/,并且在使用正则表达式时不需要'。你最终的正则表达式看起来像

    /^class\/(\d+)\/feedback$/
    

    代码

    app.get(/^class\/(\d+)\/feedback$/, function (req, res) {
         res.write(req.params[0]);
    });
    

    【讨论】:

      猜你喜欢
      • 2017-09-07
      • 1970-01-01
      • 2017-05-30
      • 2023-03-05
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      相关资源
      最近更新 更多