我有这样的事情:
index.js
myFunction1.js
myFunction2.js
在index.js
文件中,我导出所有模块功能(myFunction1
和myFunction2
)。但是,在myFunction2
我使用myFunction1
。
如果我导入索引(所有模块)并在MyModule.myFunction1
内调用myFunction2
,我会收到错误(函数不存在)。
如果我导入myFunction1.js
并将其称为myFunction1()
,则在我进行测试时,我无法创建它。
有什么方法可以做这样的事吗?
答案 0 :(得分:1)
//////////////////////
// File: ./index.js //
//////////////////////
const myFunction1 = require('./myFunction1.js');
const myFunction2 = require('./myFunction2.js');
module.exports = {
myFunction1,
myFunction2
};
////////////////////////////
// File: ./myFunction1.js //
////////////////////////////
module.exports = function1(x){
return x;
};
////////////////////////////
// File: ./myFunction2.js //
////////////////////////////
const myFunction1 = require('./myFunction1.js'); // or dropping the `.js` require('./myFunction1')
module.exports = function2(x){
return myFunction1(x);
};
答案 1 :(得分:1)
表示index.js(与Diego'相同)
const myFunction1 = require('./myFunction1.js');
const myFunction2 = require('./myFunction2.js');
module.exports = {
myFunction1,
myFunction2
};
for myFunction1.js(small fix)
module.exports = function function1(x){
return x;
};
for myFunction2.js(更改为包含index.js):
const MyModule = require('./index.js');
module.exports = function function2(x){
return MyModule.myFunction1(x);
};
和test.js:
const myFunction2 = require('./myFunction2.js');
console.log(myFunction2(20))
答案 2 :(得分:0)
index.js
let fnk1 = (a) => {
return a + ' 1 '
}
let fnk2 = (a) => {
return fnk1(a)
}
module.exports = {
fnk1,
fnk2
}
test.js
let Mymodule = require('./index')
console.log(Mymodule.fnk2('argValue'));
答案 3 :(得分:0)
这应该可以解决问题。如果它们在同一个文件中会更好。
module.exports.myFunction1 = function() {
...
}
module.exports.myFunction2 = function() {
module.exports.myFunction1()
}
如果您需要它们在单独的文件中,您可以在function2文件中要求function1。问题是,每个文件都是自己的模块。来自Node.js文档:
Node.js有一个简单的模块加载系统。在 Node.js,文件和模块是一一对应的(每个文件 被视为一个单独的模块。)
答案 4 :(得分:0)
const myFunction1 = require('./myFunction1.js');
const myFunction2 = require('./myFunction2.js');
module.exports = {
myFunction1:myFunction1,
myFunction2:function(x){
return myFunction2(x,myFunction1);
}
}
////////////////////////////
// File: ./myFunction1.js //
////////////////////////////
module.exports = function1(x){
return x;
};
////////////////////////////
// File: ./myFunction2.js //
////////////////////////////
module.exports = function2(x,myFunction1){
return myFunction1(x);
};
答案 5 :(得分:0)
您的问题不明确,因为您没有发布您的代码。因为,这是解决问题的有效方法:
<强> MyModule.js:强>
function myFunction1() {
console.log("- I am myFunction1")
}
function myFunction2() {
console.log("- I am myFunction2")
myFunction1()
}
module.exports = {
myFunction1,
myFunction2
}
<强> index.js 强>
const MyModule = require('./MyModule')
console.log("Call myFunction1")
MyModule.myFunction1()
console.log("Call myFunction1")
MyModule.myFunction2()
如果执行node index.js
,则会得到以下输出:
Call myFunction1
- I am myFunction1
Call myFunction2
- I am myFunction2
- I am myFunction1