2014-10-30 79 views

回答

3

你的方法几乎是完美的,但正如你所说,最好避免污染res命名空间:为了达到目标,您可以使用专为此目的设计的属性res.locals。接下来是我附加到响应对象中的一个片段,该对象是我的应用程序的翻译器。

app.use(function(req, res, next){ 

     function Translator (lang) {   
      this.lang = lang ? lang : 'it'; 

      this.translate = function (sentence) {  
       var d = dictionaries.get; 

       var translation = d[this.lang] ? d[this.lang][sentence] : d['it'][sentence];   
       return translation ? translation : sentence; 
      };     
      this.setLang = function (l) { 
       this.lang = l; 
      }; 
     }; 

     res.locals.translator = new Translator(); 
     next(); 
}); 
+0

感谢您的回答! – Erik 2014-10-30 13:08:33