在使用模块时,有两种基础的定义方式,一种是定义每个函数,整个文件作为一个对象来操作的。调用的时候直接require,之后用xx.xx的模式就能调用。
// calculatorFuncs.js
exports.add = (a, b) => a + b;
exports.sub = (a, b) => a - b;
exports.mul = (a, b) => a * b;
exports.div = (a, b) => {
if (b === 0) throw new Error('除数不能为0');
return a / b;
};
当然也可以用解构赋值的方法来引用,因为是把这个js文件作为一个对象了,那么它其实是等价于
// calculatorFuncs.js
module.exports = {
add: (a, b) => a + b,
sub: (a, b) => a - b,
mul: (a, b) => a * b,
div: (a, b) => {
if (b === 0) throw new Error('除数不能为0');
return a / b;
}
};
被引用的时候用const { add, sub, mul, div } = require('./calculatorFuncs');
的格式省略了对象名
另一种则是在js中定义一个类,require之后,需要实例化对象,才能调用其中的方法
// Calculator.js
class Calculator {
add(a, b) {
return a + b;
}
sub(a, b) {
return a - b;
}
mul(a, b) {
return a * b;
}
div(a, b) {
if (b === 0) throw new Error('除数不能为0');
return a / b;
}
}
module.exports = Calculator;
以下是在main.js中三种引用的使用示例。
注意:Node.js 模块中如果不显式导出函数,其他模块无法通过 require()
使用它。
必须通过 module.exports
或 exports
暴露接口,才能在外部访问。
console.log('export as object');//第一种方法
const calcFuncs = require('./calculatorFuncs');
console.log(calcFuncs.add(3, 2)); // 5
console.log(calcFuncs.sub(5, 1)); // 4
console.log(calcFuncs.mul(4, 3)); // 12
console.log(calcFuncs.div(10, 2)); // 5
console.log('object destructuring assignment');//第二种方法
const { add, sub, mul, div } = require('./calculatorFuncs');
console.log(add(2, 3)); // 5
console.log(sub(5, 1)); // 4
console.log(mul(3, 4)); // 12
console.log(div(10, 2)); // 5
console.log('export as a class');//第三种方法
const Calculator = require('./Calculator');
const calc = new Calculator();
console.log(calc.add(3, 2)); // 5
console.log(calc.sub(5, 1)); // 4
console.log(calc.mul(4, 3)); // 12
console.log(calc.div(10, 2)); // 5
- THE END -
最后修改:2025年7月1日
非特殊说明,文章内容整理自互联网。
如若转载,请注明出处:https://www.links2fun.com/2025/06/30/export_in_node.html
共有 0 条评论