阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js module 模块

      Node.js module 模块

      例子:记算圆形的面积

      在 Node.js 模块系统中,每个文件都被视为一个独立的模块。 例如,假设有一个名为 foo.js 的文件:

      const circle = require('./circle.js');
      const axiheNameLeng = 5;//这个5是拍脑袋想的,因为本站域名 axihe => 5个字;
      console.log(`
          半径为: ${axiheNameLeng} 的圆
          面积是: ${circle.area(axiheNameLeng)}
      `);
      

      在第一行中, foo.js 加载了与 foo.js 在同一目录中的 circle.js 模块。

      以下是 circle.js 的内容:

      const { PI } = Math;
      exports.area = (r) => PI * r ** 2;//模块导出了 area()
      exports.circumference = (r) => 2 * PI * r;//模块导出了 circumference()
      

      circle.js 模块导出了 area() 和 circumference() 函数。 通过在特殊的 exports 快捷方式 对象上指定额外的属性,可以将函数和对象添加到模块的根部。

      模块内的本地变量是私有的,因为模块由 Node.js 封装在一个函数中(详见Node.js 模块封装函数)。

      在这个例子中,变量 PI 对 circle.js 是私有的。

      可以为 module.exports 属性分配新的值(例如函数或对象)。

      例子:记算正方形的面积

      下面的例子中, bar.js 使用了导出 Square 类的 square 模块:

      const Square = require('./square.js');//这时候Square是一个类
      const mySquare = new Square(2);//参数2为宽度
      console.log(`正方形的面积是 ${mySquare.area()}`);
      

      square 模块定义在 square.js 中:

      // 赋值给 `exports` 不会修改模块,
      // 必须使用 `module.exports`。
      module.exports = class Square {
          constructor(width) {
              this.width = width;
          }
          area() {
              return this.width ** 2;//正方形面积直接宽度*2即可
          }
      };
      

      模块系统在 require(‘module’) 模块中实现。

      本文代码位置

      以上代码的Github代码位置:

      目录
      目录