如何才能使我的LANG在所有路线上都是全局的? 例如:
app.post('/set/lang',function(req,res){
req.lang = 'en';
res.json({lang:'en'});
});
app.get('/get/lang',function(){
res.json({lang:req.lang});
});
但返回// {lang:undefined} ??
我怎么能这样做? > / get / lang => return {lang:en}
答案 0 :(得分:3)
req.lang
未定义,因为/get/lang
的请求是无状态的,并且不知道/set/lang
上完成的请求的状态。
您需要的是会话服务,例如https://github.com/expressjs/session
您可能需要在此处阅读更多内容http://expressjs-book.com/forums/topic/express-js-sessions-a-detailed-tutorial/
我的理解是,您希望将用户语言保存为foreach用户,并让他们通过客户端应用程序中的某种语言选择器进行设置。
另请注意,这个问题令人困惑,因为它也可能引用expressjs中的全局命名参数,您可以使用https://github.com/expressjs/express-params实现这些参数。
或者,它也可能是指输入内容验证,请参阅http://expressjs.com/4x/api.html#app.param
最后没有提供版本我假设它是最新的4.x分支。
答案 1 :(得分:2)
你应该使用app.locals& res.locals。 这里有一个很好的解释: app.locals and res.locals life cycle