var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development';
var config = require('./server/config/config.js')[env];
我的问题是关于第二行。我从来没有见过函数调用后你有数组的语法。 [env]的作用或意义是什么?
答案 0 :(得分:2)
这是一个property accessor,而不是一个数组。后跟[variable]
的对象用于动态访问对象的属性。它是config['development']
的动态等价物,允许您在运行时选择属性。
您可以将该行分解为:
var config = require('./server/config/config.js');
config[env];
结合var env
行,它将:
env
设置为NODE_ENV
环境变量的值或'development'
。./server/config/config.js
文件。env
属性。例如,如果您的配置包含:
{
"development": {foo: 3},
"production": {foo: 19}
}
并且没有设置任何环境变量,相关的行将从配置中获取"development"
块。
答案 1 :(得分:0)
这实际上是使用括号表示法的成员对象访问,其中env
将包含要检索的模块属性的名称。没有创建数组。
var config_module = require('./server/config/config.js');
var config = config_module[env];
答案 2 :(得分:0)
需要config.js文件的第二行看起来像是在拉入配置对象。在这种情况下,方括号表示法看起来像是用于根据当前环境访问此对象的属性。是否生产,开发等