Javascript 带有可选第一个参数的快速捕获所有路线
如何实现将在每个请求上调用的路由中间件,但同时它应该捕获可选的lang参数 到目前为止,我尝试了下面的代码,但不起作用。路径匹配中最可能出现的问题/:lang*?。在下面的代码中,lang param未定义:Javascript 带有可选第一个参数的快速捕获所有路线,javascript,node.js,express,Javascript,Node.js,Express,如何实现将在每个请求上调用的路由中间件,但同时它应该捕获可选的lang参数 到目前为止,我尝试了下面的代码,但不起作用。路径匹配中最可能出现的问题/:lang*?。在下面的代码中,lang param未定义: const SUPPORTED_LOCALES = ['en', 'fr', 'de']; expressServer.use('/:lang*?', function(req, res, next) { // check if known locale, if no then f
const SUPPORTED_LOCALES = ['en', 'fr', 'de'];
expressServer.use('/:lang*?', function(req, res, next) {
// check if known locale, if no then fallback to 'en'
const locale = SUPPORTED_LOCALES.includes((req.params.lang)) ? req.params.lang : 'en';
req.locale = locale;
next();
}
此中间件应捕获所有请求,即使没有提供区域设置,也应仅捕获域名。它将退回到默认区域设置en:
你可以只使用app.use而不使用路径
app.usefunction req,res,next{
console.log'Time:%d',Date.now
下一个
}是的,谢谢。我只是不想麻烦处理req.params.split[1]。还需要检查数组长度是否大于>=1。我不想写太多代码。
example.com
example.com/de/blog/2
example.com/fr
example.com/en
example.com/en/blog/1
example.com/blog/1