是否有可能在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作用域时遇到了一个问题。 说somevarsomeothervarmain.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