如何在Node.js中使用express来处理带有可变数字的路由URL?

时间:2016-04-30 17:51:34

标签: regex node.js express routing

在带有express的node.js中,我想要一个像这样的URL路由

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

});

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

有谁知道如何让它发挥作用?

由于

2 个答案:

答案 0 :(得分:0)

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

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

代码

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

答案 1 :(得分:0)

让我们说这个号码被称为“id'”。这是更好的方法:

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

:id可以通过' params'关键字。