Node.js入门教程(二十六):内置模块

一、什么是内置模块?

Node.js 内置模块是 Node.js 运行时自带的、无需额外安装即可使用的核心功能模块。这些模块提供了基础的系统功能,如文件操作、网络通信、进程管理等,是 Node.js 开发的基础工具。

与需要通过 npm 安装的第三方模块不同,内置模块可以直接通过 require() 函数加载使用:

复制代码
const fs = require('fs');     // 文件系统模块
const http = require('http'); // HTTP 模块

二、常用内置模块概览

模块名称 描述 常用类/方法 典型用途
fs 文件系统操作 readFile, writeFile, mkdir, createReadStream 文件读写、目录操作
path 处理文件路径 join, resolve, dirname, basename 跨平台路径处理
http HTTP 服务器/客户端 createServer, request, get 创建 Web 服务器/客户端
https HTTPS 服务器/客户端 createServer, request 创建安全 Web 服务
url URL 解析与处理 parse, format, URL URL 解析和构造
querystring 查询字符串处理 parse, stringify 处理 URL 查询参数
os 操作系统信息 cpus, freemem, totalmem, platform 获取系统信息
events 事件处理 EventEmitter, on, emit, once 自定义事件系统
stream 流操作 Readable, Writable, pipe 处理数据流
crypto 加密功能 createHash, createCipher, randomBytes 加密/解密/哈希
zlib 压缩/解压 createGzip, createGunzip 数据压缩解压
util 实用工具 promisify, inherits, format 工具函数
child_process 子进程管理 exec, spawn, fork 创建子进程
cluster 集群管理 fork, isMaster, isWorker 多进程负载均衡
dns 域名解析 lookup, resolve 域名解析
net 网络操作 createServer, connect, Socket TCP 服务器/客户端
dgram UDP 数据报 createSocket, send UDP 通信
readline 逐行读取 createInterface, on('line') 命令行交互
repl 交互式解释器 start, context 创建 REPL 环境
vm 虚拟机 runInContext, createContext 执行 JavaScript 代码
assert 断言测试 equal, strictEqual, throws 单元测试断言
buffer 二进制数据处理 Buffer, alloc, from, concat 处理二进制数据
console 控制台输出 log, error, time, timeEnd 调试输出
timers 定时器 setTimeout, setInterval, setImmediate 定时任务
perf_hooks 性能监控 performance, PerformanceObserver 性能测量
worker_threads 工作线程 Worker, isMainThread, parentPort 多线程编程

三、核心模块详解

1. fs(文件系统模块)

fs 模块提供了与文件系统交互的 API,支持同步和异步两种操作方式。

主要功能:

  • 读写文件

  • 创建/删除目录

  • 监视文件变化

  • 获取文件信息

复制代码
const fs = require('fs');

// 异步读取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data);
});

// 同步写入文件
try {
    fs.writeFileSync('output.txt', 'Hello Node.js');
    console.log('文件写入成功');
} catch (err) {
    console.error(err);
}

2. path(路径模块)

path 模块提供处理文件和目录路径的工具函数,可以跨平台使用。

常用方法:

  • path.join() - 连接路径

  • path.resolve() - 解析为绝对路径

  • path.basename() - 获取文件名

  • path.extname() - 获取文件扩展名

复制代码
const path = require('path');

const fullPath = path.join(__dirname, 'files', 'example.txt');
console.log(fullPath);
// 输出类似: /home/user/project/files/example.txt

const ext = path.extname('index.html');
console.log(ext); // 输出: .html

3. http(HTTP 模块)

http 模块允许 Node.js 作为 HTTP 服务器或客户端运行。

主要功能:

  • 创建 HTTP 服务器

  • 发起 HTTP 请求

  • 处理 HTTP 请求和响应

复制代码
const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello Node.js Server');
});

server.listen(3000, () => {
    console.log('Server running at http://localhost:3000/');
});

4. events(事件模块)

events 模块提供了事件驱动的编程接口,是 Node.js 异步编程的基础。

核心概念:

  • EventEmitter

  • 事件监听 (on)

  • 事件触发 (emit)

复制代码
const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();

// 监听事件
myEmitter.on('event', () => {
    console.log('事件被触发!');
});

// 触发事件
myEmitter.emit('event');

5. os(操作系统模块)

os 模块提供与操作系统相关的实用方法和属性。

常用功能:

  • 获取 CPU 信息

  • 获取内存信息

  • 获取网络接口信息

  • 获取系统临时目录

复制代码
const os = require('os');

console.log(os.platform());   // 操作系统平台
console.log(os.totalmem());   // 系统总内存
console.log(os.freemem());    // 系统可用内存
console.log(os.cpus());       // CPU 信息

四、其他重要内置模块

1. util(实用工具模块)

util 模块提供各种实用功能,包括:

  • 类型检查

  • 格式化字符串

  • 回调函数转 Promise(util.promisify()

  • 继承工具(util.inherits()

2. crypto(加密模块)

crypto 模块提供加密功能,包括:

  • 哈希算法(MD5、SHA-256 等)

  • HMAC

  • 加密/解密

  • 数字签名

  • 随机数生成

3. stream(流模块)

stream 模块是处理流数据的抽象接口,Node.js 中许多模块都基于流实现,包括文件流、网络流等。

4. child_process(子进程模块)

child_process 模块允许创建和控制子进程,可以执行系统命令或其他程序。

5. url(URL 处理模块)

url 模块提供 URL 解析和格式化的工具。

五、如何使用内置模块

所有内置模块都可以通过 require() 函数直接加载:

复制代码
const moduleName = require('module_name');

注意事项:

  • 模块名称不需要加路径

  • 模块名称区分大小写

  • 不需要安装,Node.js 自带

  • 不同 Node.js 版本可能包含不同的内置模块

六、内置模块的优势

优势 说明
高性能 与 Node.js 运行时紧密集成,使用 C++ 实现核心功能
稳定性 经过严格测试,可靠性高
无需安装 开箱即用,无需额外安装
跨平台 在不同操作系统上表现一致
文档完善 官方文档详细,社区支持丰富

七、本章小结

知识点 说明
什么是内置模块 Node.js 自带、无需安装的核心模块
加载方式 使用 require('module_name') 直接加载
核心模块 fs、path、http、events、os、util、crypto、stream 等
优势 高性能、稳定、跨平台、无需安装

提示:熟练掌握内置模块是 Node.js 开发的基础。建议在开发前浏览官方文档,了解每个模块提供的功能,这样可以避免重复造轮子,提高开发效率。

相关推荐
八角丶3 小时前
Node.js Cluster 详解
前端·node.js
濮水大叔6 小时前
CabloyJS 强大之处不仅仅是 IoC,而是全栈资源的寻址体系
typescript·node.js·全栈
东方小月7 小时前
从零开发一个 Coding Agent(十一):实现 CLI 的 print 模式
node.js·全栈
__zRainy__8 小时前
Node系列 · Node基础:ES 模块化
node.js
深念Y9 小时前
Opencode Event 表写入优化方案
数据库·人工智能·ai·node.js·bug·优化·opencode
ikun778g11 小时前
DeepSeek Harness 本地部署保姆级教程:从 Node.js 24.0.0 安装到 WorkBuddy 一键运行
ai·node.js
烂蜻蜓1 天前
Node.js入门教程(二十三):全局对象
node.js·编辑器·vim
xywww1681 天前
Node.js Claude API 实战接入:SDK 调用 Opus 5、环境变量配置与报错排查
node.js
weixin_431600441 天前
NestJS 入门(7):生命周期钩子——构造函数和 `OnModuleInit` 差在哪?
前端·后端·学习·node.js·nest.js