如何在Node.js中引用module.exports中的变量
我有一个模块编写如下:如何在Node.js中引用module.exports中的变量,node.js,Node.js,我有一个模块编写如下: module.exports = { port: '1337', facebook: { clientID: '123456789', clientSecret: 'a1b2c3d4e5f6g7h8i9j0k', callbackURL: 'http://localhost:1337/oauth/facebook/callback' } }; 我想做的是在callbackURL中使用port变量:
module.exports = {
port: '1337',
facebook: {
clientID: '123456789',
clientSecret: 'a1b2c3d4e5f6g7h8i9j0k',
callbackURL: 'http://localhost:1337/oauth/facebook/callback'
}
};
我想做的是在callbackURL中使用port变量:
callbackURL: 'http://localhost:1337/oauth/facebook/callback'
我试过:
callbackURL: 'http://localhost:'+ this.port +'/oauth/facebook/callback'
但显然这是不正确的,因为facebook是另一个对象。因此,有人能解决这个问题吗?欢迎阅读您的任何其他阅读资料(就更深入的理解而言)。只需在
模块上方声明即可。将导出为普通变量:
var port = '1337';
module.exports = {
port: port,
facebook: {
clientID: '123456789',
clientSecret: 'a1b2c3d4e5f6g7h8i9j0k',
callbackURL: 'http://localhost:'+ port + '/oauth/facebook/callback'
}
};
您可以将module.exports
放入文件中的任何位置,甚至可以执行某些逻辑(例如从文件或其他资源检索设置) 我一直使用下面的结构
const that = module.exports = {
port: '1337',
facebook: {
clientID: '123456789',
clientSecret: 'a1b2c3d4e5f6g7h8i9j0k',
callbackURL: `http://localhost:${that.port}/oauth/facebook/callback`
}
};
即使您试图在最外层的对象中使用this.port
,它仍然不会给出所需的结果,因为this
不会指向您在模块.exports中导出的对象。我不确定这个问题的答案——没有双关语的意思。我仍在研究和试验,以了解更多信息,一旦我了解更多信息,可以向您汇报。太好了,谢谢-在接受宽限期结束后,我会尽快接受答案。再次查看后,没有什么可以阻止您引用模块。导出模块内的。导出对象本身。但是使用较短的引用名,,在本例中,
较短,这样可以减少混乱,从而使代码看起来更整洁。