如何从一个主文件中调用另一个JavaScript文件?

10 浏览
0 Comments

如何从一个主文件中调用另一个JavaScript文件?

我正在使用discord.js库为Discord创建一个机器人。我试图创建一个文件,这样当我执行它时,它会加载每个模块,而不需要我多次运行node file.js。这个文件被称为startup.js,位于modules文件夹中。假设我想加载Bot/modules/diagnostics中的File1.jsFile2.jsFile3.js,而startup.js位于Bot/modules。我希望文件能够异步加载,顺序不重要。感谢所有的帮助。

0
0 Comments

问题的原因是需要从一个主文件中调用另一个JavaScript文件。解决方法有几种。第一种方法是使用module.exports与对象一起使用。这将允许您使用require(或使用像babel或webpack这样的编译器,使用import)导入模块,并且可以调用对象中的任何函数。这是使用's response方法的方式。

如果您只想每个模块有一个函数,那么这种方法可能很有用,但如果您只想每个模块有一个函数,那么我不会这样做。

第二种方法是使用module.exports与变量或函数一起使用,而不是对象。这可以减少混乱,并使代码更容易理解。

最后,还有一种方法是使用ES5或ES6创建一个构造函数,这样您就可以将更多的变量传递给它,然后在该类中引用这些变量。在此示例中,我使用了一个Discord.js客户端,并从构造函数中获取客户端的名称。假设客户端的名称是"George"。

最后,选择哪种方法取决于您的个人喜好和偏好。每种方法都有其优缺点。如果您想了解更多有关我是如何创建所有这些以及模块如何工作的信息,请查看Node.js文档解释。要了解有关类的更多信息(用于第三个模块),请查看MDN文档。希望我能帮到你并给你提供一些选择。您可能还想查看这个StackOverflow问题,因为它将解决您关于引用不同目录中的文件的问题。祝编码愉快!

0
0 Comments

在JavaScript中,有时我们需要从一个主文件中调用另一个JavaScript文件。下面的内容提供了两种解决方法。

第一种方法是将File1、File2和File3作为模块进行导入。首先,在File1.js中,我们使用module.exports将函数导出为模块:

    //File1.js:
    module.exports = {
        nameOfYourFunction: () => {
            //Your code here
        },
        otherFunction: (args) => {
            //Your code here
        }
    };

接下来,我们可以在主文件startup.js中使用require将这些模块导入,并调用模块中的函数:

    //startup.js:
    const file1 = require("./diagnostics/File1.js"), file2 = require("./diagnostics/File2.js"), file3 = require("./diagnostics/File3.js");
    // Then use this to run your code from File1.js:
    file1.nameOfYourFunction();
    file1.otherFunction(args);
    //Do the same thing to run your code from other files

第二种方法是将整个模块导出为一个函数。在File1.js中,我们将整个模块导出为一个函数:

    //File1.js:
    module.exports = (args) => {
        //Your code here
    };

同样地,在主文件startup.js中,我们可以使用require将这些模块导入,并直接调用模块函数运行代码:

    //startup.js:
    const file1 = require("./diagnostics/File1.js"), file2 = require("./diagnostics/File2.js"), file3 = require("./diagnostics/File3.js");
    //To run your code:
    file1(args);

需要注意的是,这些方法中的代码作用域与主文件startup.js中的代码作用域不同,因此在使用这些方法时需要谨慎。

0