Coursera 笔记

Module 01 · Introduction to Server-Side JavaScript服务器端 JavaScript 入门

Working with Node.js Modules使用 Node.js 模块

Coursera ↗

🎵 背景音乐开始
欢迎观看《使用 Node.js 模块》课程!完成本视频后,您将能够:

  1. 描述 Node.js 的包(Packages)
  2. 在脚本中导入 Node.js 模块
  3. 从模块中导出函数和属性
  4. 访问模块中导出的属性

什么是 Node.js 包(Package)?

  • 定义:一个包由一个或多个模块组成。
  • package.json 文件:
    • 描述有关 Node.js 模块的详细信息。
    • 如果模块没有 package.json 文件,Node.js 默认假定主文件为 index.js。
    • 若需要指定不同的主脚本,可以在 package.json 中通过 main 字段指定相对路径。

package.json 文件示例

{
  "name": "today",
  "version": "1.0.0",
  "main": "lib/today.js",
  "license": "MIT"
}
字段名称 描述
name 模块的名称,例如 today。
version 模块的版本,例如 1.0.0。
main 主脚本的路径,例如 lib/today.js。
license 声明模块的使用权限,例如 MIT。

导入(Import)Node.js 模块

使用require导入模块

  1. 导入单个脚本模块:
    使用 require 函数指定脚本文件的相对路径。
const today = require('./today.js');
  1. 导入目录模块:
    当使用 require 导入目录时:
  • 如果目录内存在 index.js 文件,Node.js 将加载该文件作为默认入口。
const modToday = require('./mod_today'); // 加载 mod_today/index.js
  1. 目录结构示例:

/project
├── hello.js
└── mod_today
    └── index.js

导出(Export)函数和属性

默认导出对象exports

  • 每个 Node.js 模块都有一个隐式的 exports 对象。
  • 可以通过为 exports 添加属性和方法,将函数或值暴露给其他模块使用。

示例:导出函数

文件名:today.js

exports.dayOfWeek = function () {
    const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
    return days[new Date().getDay()];
};

导入导出的综合示例

导入和使用模块

文件名:hello.js

const today = require('./today.js');
console.log(today.dayOfWeek()); // 输出当前星期几


总结

通过本视频,您学习了以下内容:

  1. Node.js 包:每个包都包含一个 package.json 文件,描述模块的细节。
  2. 模块导入:使用 require 函数导入单个脚本或目录模块。
  3. 模块导出:通过为隐式的 exports 对象添加属性和方法,向外暴露模块内容。
  4. 模块使用:require 函数返回一个表示模块实例的 JavaScript 对象,可通过该对象访问模块的导出属性。

🎉 恭喜您掌握了 Node.js 模块的基本用法! 🚀