【发布时间】:2019-07-26 19:43:16
【问题描述】:
我有一个 node.js express 应用程序,我需要一个语言变量来指定每个请求的数据应该发回的语言。
1) 我想在该请求范围内的所有文件中访问此语言变量。 2) 一旦为特定请求设置了这个变量,我不希望它发生变化。
我尝试过的解决方案: 1) 单例类:当我创建一个单例类并尝试导入该类时,它会在多个请求中持续存在。
例如:
const Constants = require("../util/constants.js");
let instance =null;
let language = new WeakMap();
class Global{
constructor(){
if(!instance){
instance=this;
}
return instance;
}
get language(){
return language.get(this);
}
set language(value){
if(language.get(this)!==undefined){
throw Error("Language Already Set");
}else{
language.set(this,value);
}
}
}
module.exports = new Global();
请告诉我如何解决此问题。
【问题讨论】:
-
为什么不直接将语言附加到请求对象并传递请求对象呢?从技术上讲,它是可变的,但你的代码真的不应该改变传递给它的变量。
标签: javascript node.js typescript express variables