大家好 请问怎样才能用 Express.js 达到以下效果:
Client 访问一个网站任意页面后:
如果 cookie 已经有保存过偏好语言 比如说 en
那么 Server 就返回英语的文本
不然就
检测浏览器语言 比如说检测到 ja 存入 cookie 返回日语文本
我现在做到这样:
var lang = null;
app.use(function(req, res, next) {
lang = req.cookies.lang;
if (!lang) {
lang = req.acceptsLanguages('en', 'zh-cn', 'zh-hk', 'zh-sg', 'zh-tw');
switch (lang) {
case 'zh-cn' || 'zh-sg':
lang = 'zh-Hans';
break;
case 'zh-hk' || 'zh-tw':
lang = 'zh-Hant';
break;
default:
lang = 'en';
}
res.cookie('lang', lang, {path: '/', httpOnly: true});
}
next();
});
问题是这个 function 好像只是作用在 '/'
上面 难道我要在每一个 url 的 router 上面都写一遍这些么 还是说有什么更加聪明的姿势
谢谢大家
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.