带参数的Expressjs regExp

带参数的Expressjs regExp,regex,node.js,express,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,

嗨,我正在尝试让我的正则表达式在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' });
});

您需要在第一个正则表达式中使用锚点,以确保在
home/
之后没有其他内容:

RegExp("^(/(se|en))?/home/$")
或者,使用字符串文字:

/^(\/(se|en))?\/home\/$/
否则,你将得到一个匹配


请参见

如果您对我的方法有任何不清楚的地方,请不要犹豫发表评论。