【问题标题】:Should I use a NodeJS global to make config properties available to my application?我应该使用 NodeJS 全局来使我的应用程序可以使用配置属性吗?
【发布时间】:2016-01-29 00:55:07
【问题描述】:

我的问题比较简单:

在 NodeJS 中,您可以使用

设置全局变量

GLOBAL.myConfigObject = {...}

我对开发者社区的疑问是这是否是最佳实践。如果没有,将配置变量(例如 api-url 或端口或 ip 地址)中继到整个应用程序的更好方法是什么。

【问题讨论】:

  • 我不会,因为作为在您维护应用程序之后进来的开发人员,我必须弄清楚全局设置的位置以及如果发生奇怪的事情会影响它的所有因素。但这只是我对这个非常基于意见的问题的看法。

标签: node.js express


【解决方案1】:

不要为配置设置全局,而是为要启动的环境使用全局。设置一个包含每个环境的配置目录:

config/local.js

module.exports = {
    port: 3000,
    ipAddress: "127.0.0.1"
}

config/production.js

module.exports = {
    port: 443,
    ipAddress: "8.8.8.8"
}

在您启动服务器的主文件中:

server.js

var config = require("./config/" + process.env.NODE_ENV)
// use your config however you need it

从命令行启动你的服务器,然后你可以这样做:

NODE_ENV=local node server.js

这样,您有一个全局变量来指示您的环境,但您可以使用该环境所需的任何配置变量。

【讨论】:

  • 这很有启发性。我一直在尝试找出管理多个环境的最佳方法,而无需为不同的环境使用不同的配置文件,但是您描述设置环境变量以切换配置文件的方式对我的项目更有意义。
【解决方案2】:

这些配置(例如 port 和 api_keys )最常见的方式是环境变量。

狂欢

$ set PORT=8080

你可以这样访问环境变量

node.js

node> process.env.PORT

【讨论】:

    【解决方案3】:

    在我的项目案例中,设置连接配置非常有用。我将它用于我的所有服务器,如果我必须更改我的数据库,我可以很容易地切换

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-27
      • 2011-01-21
      • 2011-04-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      相关资源
      最近更新 更多