Express:匹配网址中语言代码的路径

时间:2018-10-26 13:59:49

标签: node.js express express-router

我试图为此路线捕获两个字符的可选:lang?参数:

/             // lang: undefined
/en           // lang: en
/projects     // lang: undefined
/en/projects  // lang: en

这是我的尝试:

router.get('/:lang([a-z]{2})?*', function(req, res, next) {

}

但是对于/projects,它将:lang?的参数设置为pr

如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

要解决此问题,您可以尝试使用下一种模式:

/:lang([a-z]{2})?/:rest(*)?

这里引入了另一个可选参数rest来捕获这样的结尾。

您可以查看实时示例: