Javascript 有没有可能';要求';Node.js中可以访问导入文件全局范围的对象?

Javascript 有没有可能';要求';Node.js中可以访问导入文件全局范围的对象?,javascript,node.js,bots,Javascript,Node.js,Bots,我已经做了大量的搜索,看看这是否可行。据我所知,到目前为止,情况并非如此 在我的main.js文件中,我有以下代码: var commands = require('./commands.js'); 它从commands.js导入一个对象,该对象按以下方式设置: module.exports = { var1: "something" + somevar, var2: "something" + someothervar, ... } 这允许我从main.js文件中访问对象

我已经做了大量的搜索,看看这是否可行。据我所知,到目前为止,情况并非如此

在我的
main.js
文件中,我有以下代码:

var commands = require('./commands.js');
它从
commands.js
导入一个对象,该对象按以下方式设置:

module.exports = {
   var1: "something" + somevar,
   var2: "something" + someothervar,
   ...
}
这允许我从
main.js
文件中访问对象
命令
,就好像它是在
main.js
本身中定义的一样。但是,当我希望导出的
commands.js
文件能够访问
main.js
的全局变量范围时,我遇到了一个问题。假设
somevar
someothervar
main.js
全局范围的一部分,当我想从
命令中获取值时,我不想让它们“未定义”

长话短说,我想把这个导入的对象完全当作是在
main.js
中声明的


我正试图为Discord编写一个聊天机器人,为了整洁和组织,我想把它可以使用的函数列表与处理它们的代码分开。这值得付出努力吗?有更好的方法吗?目前,我还在处理SQL,试图设计出最模块化/可定制的程序。

这是不可能的,当您导出一个模块时,所有变量都会得到解决

导入时,您将始终获得包含所有表达式的对象

我建议将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

我希望我必须制作
模块。导出所有字符串的
对象元素,然后在处理它们时使用.eval()。您可以使用不同的路径。您的建议是一个好主意,实际上我之前已经考虑过了,但出于某种原因忘记了。谢谢你的回答。