📜  如何在 Node.js 中存储部署配置文件?

📅  最后修改于: 2022-05-13 01:56:26.705000             🧑  作者: Mango

如何在 Node.js 中存储部署配置文件?

配置文件(CONFIG 文件)是各种计算机应用程序使用的文件,由确定成功运行应用程序所需的设置的参数组成。通常,它们在编写任何软件应用程序之前使用。

每个网站都有特定的函数,例如收集有关其用户的信息。例如,它是一个在线购物网站,它存储了用户的支付信息。现在,考虑到网站上的个人信息网关,它的 URL 存储在配置文件中,但它会根据部署而有所不同。例如,如果它在开发服务器上,则 URL 将为info.gfg.com ,而当它与生产服务器打交道时,则 URL 将为secureinfo.gfg.com 。这种类型的设置很容易配置,如果我们以支付网关为例,它们也可以很容易地管理,但是当应用程序必须处理越来越多的部署时,就很难处理它们。

问题的解决方案:配置模块是用于解决此问题的模块,因为它以分层方式组织应用程序部署的配置。这意味着每个部署都有一个专门分配给它的配置文件,并且以某种最佳顺序访问它们。

按照下面给出的步骤,我们可以克服这个问题:

  • 第 1 步:通过运行以下代码安装配置模块:
    npm i config — save
  • 步骤 2:配置模块处理根级别 config 目录中的配置文件。您可以通过执行以下代码将其更改为另一个目录:
    app.js.
    process.env['NODE_CONFIG_DIR'] = __dirname + '/configDir/';
    
  • 第 3 步:配置文件按以下顺序加载:
    default.json
    {deployment}.json
    local.json
    local-{deployment}.EXT
    

    该模块从 NODE_ENV 环境变量中选择部署。如果 NODE_ENV 的值为 development,则将使用 development.json。同样的条件也适用于其他文件。

  • 第四步:我们有两个配置文件,一个用于本地开发,一个用于生产。
    local.json
    {
     'dbUrl': 'mongodb://localhost:27017/mydb'
    }
    production.json
    {
     'dbUrl': 'mongodb://some-db-location/dbname'
    }
    var config = require(‘config’);
    config.get(‘dbUrl’);
    

通过编写额外的代码[(var config = require('config'); config.get('dbUrl');]我们可以解决我们的问题。这里应用上一步中提到的条件,如果开发发生在本地环境中,则dbUrl的值将从local.json中获取,当它在生产环境中时(NODE_ENV = production),则该值将自动从production.json中获取。这个解决方案解决了这个问题根据应用部署需要配置多个文件。