在我的Node.js(+ express)应用程序中,我希望收到以下请求:
GET /images/foo1/id500/abc5
GET /images/foo2/id540
GET /images/id500/foo800
换句话说,请求将具有常量前缀/images/
和我需要捕获的一些其他随机路径。
app.get("/images/:foo(*)", (req, res) => {
console.log(req.params.foo);
res.send(req.params.foo);
});
上面的代码完全符合我的要求,但是如果我输入“。”。 (任何字符)到正则表达式,然后它将停止工作...
以下代码不起作用:
app.get("/images/:foo(.*)", (req, res) => {
console.log(req.params.foo);
res.send(req.params.foo);
});
当:foo(.*)
或:foo(*)
正常工作时,为什么使用:foo(\\w*)
并不能达到预期的效果?
答案 0 :(得分:0)
如果要匹配正则表达式,则必须使用regexp匹配。区别在于:
app.get(/a/, (req, res) => { // Matches anything with an “a” in it, such as /xax.
app.get('a', (req, res) => { // matches exactly /a
您可以将示例重写为正则表达式,切记不要使用/
:
app.get(/\/images\/:foo(.*)/, (req, res) => {