Expressjs regExp with params

时间:2015-08-18 14:50:18

标签: regex node.js express

您好我正在尝试让我的正则表达式在expressJS中运行。 如果我进入/ se / home / helloworld,它将始终触发第一个“Home”而不是“Test”。怎么解决这个问题?

很明显它必须是这条树的路径。

/se/home/:user
/se/home/:user/:notes
/se/home/:user/:notes/:someting

这是我迄今为止所管理的......

app.get(new RegExp("^(\/(se|en))?\/home\/"), function(req, res, next) {
    console.log("Home");
    res.render('index', { title: 'Express' });
});

app.get(new RegExp("^(\/(se|en))?\/home\/([^/]+)"), function(req, res, next) {
    console.log("Test");
    console.log(req.params);

    res.render('index', { title: 'Express test' });
});

1 个答案:

答案 0 :(得分:1)

您需要在第一个正则表达式中使用锚点,以确保RegExp("^(/(se|en))?/home/$") 之后没有其他内容:

/^(\/(se|en))?\/home\/$/

或者,使用字符串文字:

<line stroke='green' x1='0' y1='50%' x2='100%' y2='25%'>

否则,你会得到一个匹配。

请参阅demo