node.js - Express:匹配url中语言代码的路由

标签 node.js express express-router

我正在 try catch 此路由的两个字符的可选 :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

如何避免这种情况?

最佳答案

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

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

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

您可以查看实例:

关于node.js - Express:匹配url中语言代码的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53010424/

相关文章:

node.js - 如何将数据引用从一个集合引用到另一个集合? MongoDB

javascript - 为什么我的等待在我的功能中不起作用? "SyntaxError: await is only valid in async function"

node.js - docker env 变量显示未定义

node.js - 在nodeJS中获取SESSIONID

node.js - 从我的数据库中提取数据并将其(ById)填充到我的 Vue View (使用 Axios)时遇到问题。后端是 Node/Express

node.js - 收到错误 PayloadTooLargeError : request entity too large in case of Using express. Router() 后调用

node.js - 探查器显示在 node::ContextifyScript::New 上花费的时间比例很高

node.js - 配置/安装 nodemon 时出错

node.js - Node.js-如何接收和解析multipart/formData作为具有字段和文件的对象数组?

node.js - Node.js:表达路线,从数据库查询数据并在template.hbs View 中呈现