Javascript 节点是否需要使用方括号传递参数的模块?这是个错误吗?

Javascript 节点是否需要使用方括号传递参数的模块?这是个错误吗?,javascript,node.js,Javascript,Node.js,我在git hub repo上看到了以下nodeJS代码: var env = process.env.NODE_ENV || 'development' , config = require('./config/config')[env] , auth = require('./config/middlewares/authorization') , mongoose = require('mongoose'); 我以前从未见过方括号这是错误的吗? 我认为args只能在普通括号中传递()。我

我在git hub repo上看到了以下nodeJS代码:

var env = process.env.NODE_ENV || 'development'
, config = require('./config/config')[env]
, auth = require('./config/middlewares/authorization')
, mongoose = require('mongoose');
我以前从未见过方括号这是错误的吗? 我认为args只能在普通括号中传递
()
。我在任何地方都找不到这方面的文档

这里是有问题的repo,它位于
server.js

的第17行,看看他们的示例,该文件导出一个对象,每个环境都作为键:

module.exports = {
  development: {
    db: 'mongodb://localhost/noobjs_dev',
    root: rootPath,
    // ...
  },
  test: {
    db: 'mongodb://localhost/noobjs_test',
    root: rootPath,
    // ...
  },
  production: {}
}
方括号将仅选择与
节点_ENV
变量中定义的环境相关的配置

假设
NODE_ENV
持有值
development
,这与执行此操作相同:

var config = require('./config/config').development;
与此相同:

var config = require('./config/config')['development'];

方括号的优点是允许您动态选择对象上的键。

require('./config/config')将是一个简单的JSON,您可以使用
dot
符号或方括号
['myProp']
访问它的属性。完美答案,感谢Andreiso,方括号根本没有被传入(尽管它们类似于参数的传递),并且是访问对象属性的方括号符号。谢谢你指出这一点!