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 开发的基础。建议在开发前浏览官方文档,了解每个模块提供的功能,这样可以避免重复造轮子,提高开发效率。

相关推荐
八角丶9 小时前
Node 网络编程 —— TLS 模块
javascript·后端·node.js
嘿嘿-6614 小时前
Cherry Studio 接入ChatGpt:GPT-5.6 Sol 文本测试与 GPT-Image-2 出图教程
人工智能·gpt·ai·chatgpt·node.js·ai编程
大牧师14 小时前
TypeORM 学习教程
数据库·sql·学习·node.js·orm·nest.js·typeorm
逻辑016 小时前
安装 Claude Code 完整指南(用户级 Node.js 环境)
node.js·claude code
Wang's Blog16 小时前
Vibe Coding一人即团队系列54:云服务器 Node.js 与 MySQL 9 环境搭建及配置指南
服务器·人工智能·mysql·node.js
FungLeo16 小时前
成为全栈·Node 后端篇·结构化日志与请求链路追踪
node.js·结构化日志·成为全栈·请求链路
Flynt20 小时前
NestJS 12升级踩坑:从Webpack到Rspack,我折腾了一整个周末
typescript·node.js·nestjs
FungLeo1 天前
成为全栈·Node 后端篇·配置管理:环境变量、多环境与密钥安全
node.js·环境变量·多环境配置·密钥安全
FungLeo1 天前
成为全栈·Node 后端篇·错误处理:异常分层与全局捕获
node.js·错误处理·异常分层·全局捕获·成为全栈
百万运营Pro2 天前
用 Astro + Supabase 从零构建全网盘聚合搜索引擎:PGroonga 中文检索实战
搜索引擎·前端框架·node.js·个人开发·学习方法·ai编程·资源分享