Node.js 内置模块

Node.js 内置模块

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 运行时紧密集成

稳定性:经过严格测试,可靠性高

无需安装:开箱即用

跨平台:在不同操作系统上表现一致

文档完善:官方文档详细

相关阅读