我有几个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();
}
}
答案 0 :(得分:4)
module.exports = function(app, db, conf){
return function test() {
console.log("YAY");
}
}
请注意,您需要返回该功能。
module.exports = function(app, db, conf){
return function performTest() {
var test = require('./file1')(app, db, conf);
test();
}
}
var test = require('./file2')(app, db, conf);
test();
或
require('./file2')(app, db, conf)();
答案 1 :(得分:1)
您现在在file1中的函数仅限于导出中的函数。相反,您希望导出一个对象,其中每个函数都是该对象的成员。
//file1.js
module.exports = {
test: function () {
}
};
//file2.js:
var file1 = require('./file1.js');
module.exports = {
performTest: function () {
file1.test();
}
}
答案 2 :(得分:0)
在ECMAScript6及更高版本中,您可以通过export
和import
关键字来做到这一点。
首先,在单独的js文件中实现和export
一个箭头函数:
//file1.js
export const myFunc = () => {
console.log("you are in myFunc now");
}
然后import
,然后在其他文件中调用它:
//otherfile.js
import { myFunc } from 'file1';
myFunc();