我在git hub repo上看到了以下nodeJS代码:
var env = process.env.NODE_ENV || 'development'
, config = require('./config/config')[env]
, auth = require('./config/middlewares/authorization')
, mongoose = require('mongoose');
我在[env]
之前从未见过方括号这是一个错误吗?
我认为args只能在普通括号( )
中传递。我找不到任何关于此的文档。
有问题的回复是https://github.com/diki/nodejs-passport-boilerplate及其server.js
的第17行。
答案 0 :(得分:7)
查看他们的config.js
示例,该文件将每个环境的对象导出为键:
module.exports = {
development: {
db: 'mongodb://localhost/noobjs_dev',
root: rootPath,
// ...
},
test: {
db: 'mongodb://localhost/noobjs_test',
root: rootPath,
// ...
},
production: {}
}
方括号将仅选择与NODE_ENV
变量中定义的环境相关的配置。
假设NODE_ENV
保留值development
,这与执行此操作相同:
var config = require('./config/config').development;
与此相同:
var config = require('./config/config')['development'];
方括号的优点是它们允许您动态选择对象上的键。