NodeJS:了解模块中的变量范围
NodeJS: understanding variable scope in modules
使用 NodeJS v0.12.1,在下文中,我尝试将外部文件读入配置对象,并使用该对象提供的值执行一些测试。
我认为 config
会在 before
函数的范围内,但我在 before
函数的第一行收到错误 ReferenceError: config is not defined
。为什么不能在 before
内访问 config
?
module.exports = {
config : require('../../testconfig.json'),
before : function (browser) {
pass = config.pass;
siteroot = config.local.address + config.local.subdir;
},
after : function (browser) {
//we'll come up with something later....
},
'Testing the Login page': function (browser) {
var greeting = 'Welcome, ' + user + '!';
browser
.url(siteroot)
.waitForElementVisible('body', 1000)
.setValue('input[id=UserNameEdit]', user)
.setValue('input[id=PasswordEdit]', pass)
.click('#LoginBtn')
.pause(1000)
.assert.containsText('#usergreeting', greeting)
}
};
这不是范围问题。
config
不是变量。它是对象的 属性(或者一旦对象字面量完成求值就会是)。
您需要访问 this.config
。
使用 NodeJS v0.12.1,在下文中,我尝试将外部文件读入配置对象,并使用该对象提供的值执行一些测试。
我认为 config
会在 before
函数的范围内,但我在 before
函数的第一行收到错误 ReferenceError: config is not defined
。为什么不能在 before
内访问 config
?
module.exports = {
config : require('../../testconfig.json'),
before : function (browser) {
pass = config.pass;
siteroot = config.local.address + config.local.subdir;
},
after : function (browser) {
//we'll come up with something later....
},
'Testing the Login page': function (browser) {
var greeting = 'Welcome, ' + user + '!';
browser
.url(siteroot)
.waitForElementVisible('body', 1000)
.setValue('input[id=UserNameEdit]', user)
.setValue('input[id=PasswordEdit]', pass)
.click('#LoginBtn')
.pause(1000)
.assert.containsText('#usergreeting', greeting)
}
};
这不是范围问题。
config
不是变量。它是对象的 属性(或者一旦对象字面量完成求值就会是)。
您需要访问 this.config
。