【问题标题】: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 正则表达式中的数字似乎不起作用。
有谁知道如何让它工作?
谢谢
【问题讨论】:
标签:
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]);
});