是否有可能在Node.js中“需要”一个可访问导入文件全局作用域的对象?
我已经做了一些四处搜寻,看看这是否可能。 到目前为止,据我所知,事实并非如此。
在我的main.js
文件中,我有这样的代码:
var commands = require('./commands.js');
它从commands.js
导入一个对象,按照以下方式进行设置:
module.exports = { var1: "something" + somevar, var2: "something" + someothervar, ... }
这允许我从main.js
文件中访问对象commands
,就像它刚刚在main.js
。 但是,当我想要导出commands.js
文件能够访问main.js
的全局variables作用域时遇到了一个问题。 说somevar
和someothervar
是main.js
全局范围的一部分,当我想从commands
获得一个值时,我不希望它们是“未定义的”。
长话短说,我想像这只是在main.js
声明的那样对待这个导入的对象。
我试图为Discord编写一个聊天机器人,并且为了整洁和组织,我希望将它可以使用的函数列表从处理它们的代码中分离出来。 这是值得的努力? 有一个更好的方法吗? 我现在还在围绕着SQL,试图devise出最模块化/可定制的程序。
这是不可能的,当你导出一个模块时,所有的variables都将被parsing。
在导入时,您将始终获取所有已评估expression式的对象
我会build议使var1和var2作为函数
module.exports = { var1: function(someVar){ return "something" + someVar}, var2: function(someothervar) {return "something" + someothervar}, ... } Now when you import it in main.js ,pass your somevar and someothervar