node中 export的基本语法

玩聚 2025-6-30 45 6/30

在使用模块时,有两种基础的定义方式,一种是定义每个函数,整个文件作为一个对象来操作的。调用的时候直接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.exportsexports 暴露接口,才能在外部访问。

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 -

玩聚

7月01日09:14

最后修改:2025年7月1日
0

非特殊说明,文章内容整理自互联网。

共有 0 条评论