首页 > 解决方案 > Express.JS,Node.JS - 每个请求范围可访问的变量

问题描述

我有一个 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();

请让我知道如何解决此问题。

标签: javascriptnode.jstypescriptexpressvariables

解决方案


您可以在 .env 文件中添加该变量,然后您可以在您的应用程序中访问它。通过在您的 server.js 文件中添加 require('dotenv').config() 和 qqaccess th 变量,您需要通过 process.env.your变量名


推荐阅读