每个人, 获取本地参数然后在路由中传递它时遇到问题。 我在routes / middleware.js
中有这个代码exports.detectLang = function(req, res, next) {
var match = req.url.match(/^\/(de|en)([\/\?].*)?$/i);
if (match) {
req.setLocale(match[1]);
// Make locale available in template
// (necessary until i18n 0.6.x)
res.locals.locale = req.getLocale();
// reset the URL for routing
req.url = match[2] || '/';
console.log(response);
} else {
// Here you can redirect to default locale if you want
console.log("does not match")
}
next();
};
这会检测网址中的de或en部分,并使用de或en
设置本地变量“Locale”现在位于routes / view / index.js
中我想获取本地参数“Locale”并将其放入路线中 像这样的东西
// Setup Route Bindings
exports = module.exports = function (app) {
// Views
app.get('/'+locale, routes.views.index);
app.all('/'+locale+'employees', routes.views.employees);
};
但我无法从中间件到index.js
获取该locale参数答案 0 :(得分:0)
您可以在路线中使用参数“区域设置”:
app.get('/:locale', routes.views.index);
...然后在中间件中使用param:
var match = req.params.locale.match(/^\/(de|en)([\/\?].*)?$/i);