Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我是否应该使用NodeJS全局来使配置属性对我的应用程序可用?_Node.js_Express - Fatal编程技术网

Node.js 我是否应该使用NodeJS全局来使配置属性对我的应用程序可用?

Node.js 我是否应该使用NodeJS全局来使配置属性对我的应用程序可用?,node.js,express,Node.js,Express,我的问题相对简单: 在NodeJS中,您可以使用 GLOBAL.myConfigObject={…} 我对开发者社区的问题是,这是否是最佳实践。如果没有,那么将配置变量(如api url或端口或ip地址)中继到整个应用程序的更好方法是什么。在我的项目中,设置连接配置非常有用。我将它用于我的所有服务器,如果我必须更改我的数据库,我可以非常轻松地切换在我的项目中,设置连接配置非常有用。我将它用于我的所有服务器,如果我必须更改我的数据库,我可以非常轻松地切换对于这些配置(如端口和api_键),最常见的

我的问题相对简单:

在NodeJS中,您可以使用

GLOBAL.myConfigObject={…}


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

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

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

对于这些配置(如端口和api_键),最常见的方式是环境变量

猛击

$set PORT=8080

您可以这样访问环境变量

node.js


node>process.env.PORT

这些配置(如端口和api_键)最常见的方式是环境变量

猛击

$set PORT=8080

您可以这样访问环境变量

node.js


node>process.env.PORT

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

config/local.js

module.exports = {
    port: 3000,
    ipAddress: "127.0.0.1"
}
module.exports = {
    port: 443,
    ipAddress: "8.8.8.8"
}
var config = require("./config/" + process.env.NODE_ENV)
// use your config however you need it
config/production.js

module.exports = {
    port: 3000,
    ipAddress: "127.0.0.1"
}
module.exports = {
    port: 443,
    ipAddress: "8.8.8.8"
}
var config = require("./config/" + process.env.NODE_ENV)
// use your config however you need it
在启动服务器的主文件中:

server.js

module.exports = {
    port: 3000,
    ipAddress: "127.0.0.1"
}
module.exports = {
    port: 443,
    ipAddress: "8.8.8.8"
}
var config = require("./config/" + process.env.NODE_ENV)
// use your config however you need it
从命令行启动服务器,然后可以执行以下操作:

NODE\u ENV=local NODE server.js


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

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

config/local.js

module.exports = {
    port: 3000,
    ipAddress: "127.0.0.1"
}
module.exports = {
    port: 443,
    ipAddress: "8.8.8.8"
}
var config = require("./config/" + process.env.NODE_ENV)
// use your config however you need it
config/production.js

module.exports = {
    port: 3000,
    ipAddress: "127.0.0.1"
}
module.exports = {
    port: 443,
    ipAddress: "8.8.8.8"
}
var config = require("./config/" + process.env.NODE_ENV)
// use your config however you need it
在启动服务器的主文件中:

server.js

module.exports = {
    port: 3000,
    ipAddress: "127.0.0.1"
}
module.exports = {
    port: 443,
    ipAddress: "8.8.8.8"
}
var config = require("./config/" + process.env.NODE_ENV)
// use your config however you need it
从命令行启动服务器,然后可以执行以下操作:

NODE\u ENV=local NODE server.js


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

我不会这样做,因为作为一名开发人员,在您维护应用程序之后,我必须弄清楚全局设置在哪里,如果发生了一些奇怪的事情,会有什么影响。但这只是我对这个基于观点的问题的看法。我不会,因为作为一个开发人员,在你维护应用程序之后,我必须弄清楚全局设置在哪里,如果发生了一些奇怪的事情,会有什么影响。但这只是我对这个基于观点的问题的看法。这很有启发性。我一直在试图找出管理多个环境的最佳方法,而不必为不同的环境设置不同的配置文件,但是您描述的设置环境变量以切换配置文件的方式对我的项目更有意义。这非常有启发性。我一直在试图找出管理多个环境的最佳方法,而不必为不同的环境设置不同的配置文件,但是您描述的设置环境变量以切换配置文件的方式对我的项目更有意义。