Node.js 内置模块
Node.js 内置模块是 Node.js 运行时自带的、无需额外安装即可使用的核心功能模块。这些模块提供了基础的系统功能,如文件操作、网络通信、进程管理等,是 Node.js 开发的基础工具。
与需要通过 npm 安装的第三方模块不同,内置模块可以直接通过 require() 函数加载使用,例如:
const fs = require('fs'); // 文件系统模块
const http = require('http'); // HTTP 模块
常用内置模块介绍
以下是 Node.js 主要内置模块的详细说明和功能概述。
模块名称
描述
常用类/方法
典型用途
fs (File System)
文件系统操作
readFile, writeFile, mkdir, readdir, createReadStream, createWriteStream
文件读写、目录操作
path
处理文件路径
join, resolve, dirname, basename, extname
跨平台路径处理
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, homedir, hostname
获取系统信息
events
事件处理
EventEmitter, on, emit, once
自定义事件系统
stream
流操作
Readable, Writable, Duplex, Transform, pipe
处理数据流
crypto
加密功能
createHash, createCipher, createDecipher, randomBytes
加密/解密/哈希
zlib
压缩/解压
createGzip, createGunzip, createDeflate, createInflate
数据压缩解压
util
实用工具
promisify, inherits, format, types
工具函数
child_process
子进程管理
exec, execFile, spawn, fork
创建子进程
cluster
集群管理
fork, isMaster, isWorker
多进程负载均衡
dns
域名解析
lookup, resolve, reverse
域名解析
domain
处理多个异步操作错误的模块
create , run, add
提供了一种将多个不同的 I/O 操作分组并统一处理其错误的机制。
net
网络操作
createServer, connect, Socket
TCP服务器/客户端
dgram
UDP数据报
createSocket, send, bind
UDP通信
readline
逐行读取
createInterface, on('line')
命令行交互
repl
交互式解释器
start, context
创建REPL环境
vm
虚拟机
runInContext, createContext, Script
执行JavaScript代码
assert
断言测试
equal, strictEqual, deepEqual, throws
单元测试断言
buffer
二进制数据处理
Buffer, alloc, from, concat
处理二进制数据
console
控制台输出
log, error, time, timeEnd
调试输出
timers
定时器
setTimeout, setInterval, setImmediate, clearTimeout
定时任务
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
继承工具
2. crypto (加密模块)
crypto 模块提供加密功能,包括:
哈希算法
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 运行时紧密集成
稳定性:经过严格测试,可靠性高
无需安装:开箱即用
跨平台:在不同操作系统上表现一致
文档完善:官方文档详细