Node.js需要其他文件的功能,而无需执行[保留]时执行的整个文件
我是Node.js的初学者。我的问题是:有没有一种方法可以要求另一个文件中的功能而不实际执行整个另一个文件?
编辑
抱歉,这个问题不清楚,这是我写来帮助理解的一个示例:文件test2:
let counter = 0;
let zero = 0;
(() => {
zero++;
})();
const add = () => {
counter++;
return (`counter is ${counter} and zero is ${zero}`);
}
module.exports = {
add: add
}
文件test1:
for (let i = 0; i < 10; i++) {
console.log(require('./test2').add());
}
输出:
counter is 1 and zero is 1
counter is 2 and zero is 1
counter is 3 and zero is 1
counter is 4 and zero is 1
counter is 5 and zero is 1
counter is 6 and zero is 1
counter is 7 and zero is 1
counter is 8 and zero is 1
counter is 9 and zero is 1
counter is 10 and zero is 1
您可以看到变量零已经增加,因为已经执行了test2中的函数。我实际上没有使用全局变量就解决了这个问题,但是我很好奇是否有办法避免不必要的执行。谢谢。
回答如下:您可以使用module.exports
解构您想使用的必需功能,
let myFun = function() { ... }; or let myFun = () => { ... }
let myFun2 = function() { ... }; or let myFun2 = () => { ... }
exports.myFun = myFun;
exports.myFun2 = myFun2;
导出(或“暴露”)内部作用域函数myFun和myFun2。
您想在任何地方使用的功能都可以称呼您
同时使用,
const {myFun, myFun2} = require('./mymodule');
myFun();
myFun2();
要使用任何一个,
const{myFun} = require('./mymodule');
myFun();
希望有帮助。