1
我有一个配置文件为我的Node.js应用程序,它看起来是这样的:的JavaScript对象是自内引用值
// Development specific configuration
// ==================================
module.exports = {
....
ip: "localhost",
//Rabbit MQ
rabbitmq: {
username: 'foo',
password: 'bar',
ip: 'amqp://'+this.username+':'+this.password+'@rabbitmq',
queues: {
name: 'foo'
}
},
....
};
这里是模块的样子,我使用这个配置文件:
var config = require ('../../config/environment');
this.con = amqp.connect (config.rabbitmq.ip);
我收到未定义的用户名和密码:
amqp://undefined:[email protected]
我已经尝试了多种方法如:
创建getter函数对象内部这样的:
rabbitmq: { username: 'foo', password: 'bar', getUsername: function(){ return this.username; }, getpassword: function(){ return this.password; }, ip: 'amqp://'+this.getUsername()+':'+this.getpassword()+'@rabbitmq',
创建自值并分配 '这个' 和引用它:
self: this, ... ip: 'amqp://'+self.rabbitmq.username+':'+self.rabbitmq.password+'@rabbitmq',
..
我不能g将范围正确地工作。我缺少一些基本的东西吗?我怎样才能做到这一点? 请帮忙。
你能试试这个ip:'amqp://'+ username +':'+ password +'@ rabbitmq', –
ip:'amqp://'+ username +':'+ password +' @rabbitmq', ^ ReferenceError:用户名未定义 – TitaniuM
作为表达式的一部分 - “this”包含您正在运行的当前范围的值。所以你想做的事情是不可能的(并且不需要诚实)。 – zerkms