Expressjs regExp与参数

嗨,我想让我的正则expression式在expressJS工作。 如果我进入/ se / home / helloworld,它总会触发第一个“Home”而不是“Test”。 如何解决这个问题?

很好,它必须处理这条树的path。

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

这是我迄今为止pipe理的…

 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' }); }); 

您需要使用第一个正则expression式的锚来确保home/之后没有其他东西:

 RegExp("^(/(se|en))?/home/$") 

或者,使用string文字:

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

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

看演示