Node.js 在另一个模块中访问函数。在单独的文件中导出

Node.js 在另一个模块中访问函数。在单独的文件中导出,node.js,express,Node.js,Express,我有几个javascript文件,其中包含节点应用程序的不同部分。它们需要使用以下逻辑。我想从file2.js访问一个file1.js中的函数,但迄今为止几乎没有成功。任何帮助都将不胜感激,谢谢 app.js:这是我启动服务器的文件,包括所有快车路线 require(path_to_file+'/'+file_name)(app, mongoose_database, config_file); //Require a bunch fo files here in a loop. file1

我有几个javascript文件,其中包含节点应用程序的不同部分。它们需要使用以下逻辑。我想从file2.js访问一个file1.js中的函数,但迄今为止几乎没有成功。任何帮助都将不胜感激,谢谢

app.js:这是我启动服务器的文件,包括所有快车路线

require(path_to_file+'/'+file_name)(app, mongoose_database, config_file);  //Require a bunch fo files here in a loop.
file1.js:这是使用上述代码所需的示例文件

module.exports = function(app, db, conf){
  function test() {  //Some function in a file being exported.
    console.log("YAY");
  }
}
file2.js:这是使用上述代码所需的另一个文件。我想从这个文件file2.js中访问file1.js中的函数

module.exports = function(app, db, conf){
  function performTest() {  //Some function in a file being exported.
    test();
  }
}

您现在在file1中拥有的函数的作用域仅限于导出中的函数。相反,您希望导出一个对象,其中每个函数都是该对象的成员

//file1.js
module.exports = {
    test: function () {
    }
};


//file2.js:
var file1 = require('./file1.js');
module.exports = {
    performTest: function () {
        file1.test();
    }
}

您现在在file1中拥有的函数的作用域仅限于导出中的函数。相反,您希望导出一个对象,其中每个函数都是该对象的成员

//file1.js
module.exports = {
    test: function () {
    }
};


//file2.js:
var file1 = require('./file1.js');
module.exports = {
    performTest: function () {
        file1.test();
    }
}
file1.js 注意:您需要返回函数

file2.js 其他文件 或

file1.js 注意:您需要返回函数

file2.js 其他文件 或

在及以上版本中,您可以通过导出和导入关键字来实现

首先,在单独的js文件中实现并导出箭头函数:

//file1.js
export const myFunc = () => {
    console.log("you are in myFunc now");
}
然后,导入并在其他文件中调用它:

//otherfile.js

import { myFunc } from 'file1';

myFunc();
在及以上版本中,您可以通过导出和导入关键字来实现

首先,在单独的js文件中实现并导出箭头函数:

//file1.js
export const myFunc = () => {
    console.log("you are in myFunc now");
}
然后,导入并在其他文件中调用它:

//otherfile.js

import { myFunc } from 'file1';

myFunc();

谢谢你的回复。如果module.export中有一个函数,则此方法有效。但是,如果module.export中的文件中有多个函数,则如何访问这些函数。有没有一种方法可以访问这样的函数:var file1=require'/file1'app、db、conf;然后是file1.testSure。只需让导出的函数返回一个具有属性test的对象,其值为函数。这个问题的讨论可能会有帮助。谢谢你的回复。如果module.export中有一个函数,则此方法有效。但是,如果module.export中的文件中有多个函数,则如何访问这些函数。有没有一种方法可以访问这样的函数:var file1=require'/file1'app、db、conf;然后是file1.testSure。只需让导出的函数返回一个具有属性test的对象,其值为函数。这个问题的讨论可能会有帮助。嘿,我试着用这个方法玩,但我没能让它发挥作用。如果我使用你的确切语法,我会在funtionHey这个词后面的意外括号中得到一个错误点。我尝试过使用这个方法,但是我无法让它工作。如果我使用您的确切语法,我会在单词funtion后的意外括号中得到一个错误点。请注意,您需要一个编译器。它不仅可以工作,还需要一个编译器。这不仅仅是工作。
//otherfile.js

import { myFunc } from 'file1';

myFunc();