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()。您可以使用不同的路径。您的建议是一个好主意,实际上我之前已经考虑过了,但出于某种原因忘记了。谢谢你的回答。