人人都会AI编程

附录 A Node.js 核心内置 API 速查表

更新时间:2026-07-10

本附录汇总了 Node.js 开发中最常使用的内置模块及其核心 API,涵盖文件系统、路径处理、网络通信、进程管理、数据流等场景。所有 API 均基于 Node.js LTS 版本(≥18.x),可作为日常开发的快速参考。


1. 文件系统(fs)

| API | 说明 | 备注 |
|-----|------|------|
| fs.readFile(path[, options], callback) | 异步读取文件 | 推荐使用 fs/promises 版本 |
| fs.writeFile(file, data[, options], callback) | 异步写入文件 | 默认覆盖写入 |
| fs.appendFile(file, data[, options], callback) | 追加写入 | 适合日志收集 |
| fs.unlink(path, callback) | 删除文件 | 无法删除目录 |
| fs.mkdir(path[, options], callback) | 创建目录 | recursive: true 自动创建父目录 |
| fs.readdir(path[, options], callback) | 读取目录内容 | 返回文件名数组 |
| fs.stat(path[, options], callback) | 获取文件/目录元信息 | 返回 Stats 对象(大小、时间等) |
| fs.existsSync(path) | 同步判断路径是否存在 | 异步版本已废弃,推荐直接 catch |
| fs.createReadStream(path[, options]) | 创建可读流 | 高效处理大文件 |
| fs.createWriteStream(path[, options]) | 创建可写流 | 流式写入数据 |
| fs.watch(filename[, options][, listener]) | 监视文件变化 | 注意跨平台差异,可考虑 chokidar |


2. 路径处理(path)

| API | 说明 | 示例输出 |
|-----|------|----------|
| path.join([...paths]) | 智能拼接路径 | path.join('/foo', 'bar', '..', 'baz')/foo/baz |
| path.resolve([...paths]) | 解析为绝对路径 | path.resolve('app')/当前工作目录/app |
| path.dirname(p) | 返回目录部分 | path.dirname('/a/b/c')/a/b |
| path.basename(p[, ext]) | 返回文件名 | path.basename('/a/b/c.txt', '.txt')c |
| path.extname(p) | 返回扩展名(含点) | path.extname('/a/b/c.txt').txt |
| path.parse(p) | 解析为对象 | { root, dir, base, ext, name } |
| path.normalize(p) | 规范化路径 | path.normalize('a//b/c/../d')a/b/d |
| path.sep | 平台特定路径分隔符 | Linux: /, Windows: \ |


3. HTTP 服务器与客户端(http / https)

| API | 说明 |
|-----|------|
| http.createServer([options][, requestListener]) | 创建 HTTP 服务器 |
| server.listen(port[, hostname][, callback]) | 绑定端口启动服务 |
| request.method / request.url / request.headers | 获取请求行和请求头 |
| request.on('data', callback) / request.on('end', callback) | 读取请求体(分块) |
| response.writeHead(statusCode[, headers]) | 设置状态码和响应头 |
| response.end([data]) | 结束响应并可选发送数据 |
| http.request(options[, callback]) / http.get(options[, callback]) | 发起客户端请求(GET 简写) |
| https.createServer(options[, requestListener]) | HTTPS 服务器,需传入证书 |

实际开发中更推荐 Express、Koa 等框架,但原生 API 是理解原理的基础。


4. 网络基础(net / dgram)

| 模块 | API | 说明 |
|------|-----|------|
| net | net.createServer([options][, connectionListener]) | 创建 TCP 服务器 |
| net | socket.on('data', callback) | 接收数据(需处理粘包) |
| net | socket.write(data) / socket.end() | 发送数据并可选结束连接 |
| dgram | dgram.createSocket(type[, callback]) | 创建 UDP socket(udp4/udp6) |
| dgram | socket.bind(port) / socket.send(msg, port, address) | 绑定端口、发送数据报 |


5. 进程与系统(process / os)

| 模块 | API | 说明 |
|------|-----|------|
| process | process.env | 环境变量对象 |
| process | process.argv | 命令行参数数组 |
| process | process.cwd() | 返回当前工作目录 |
| process | process.exit([code]) | 退出进程 |
| process | process.nextTick(callback) | 将回调放入微任务队列头部 |
| process | process.memoryUsage() | 内存使用情况 |
| process | process.uptime() | 进程运行秒数 |
| process | process.on('uncaughtException', cb) | 捕获未处理异常 |
| process | process.on('unhandledRejection', cb) | 捕获未处理的 Promise 拒绝 |
| os | os.cpus() | 获取 CPU 信息 |
| os | os.totalmem() / os.freemem() | 系统内存 |
| os | os.homedir() | 用户主目录 |
| os | os.tmpdir() | 系统临时目录 |
| os | os.networkInterfaces() | 网络接口信息 |


6. 子进程与集群(child_process / cluster)

| 模块 | API | 说明 |
|------|-----|------|
| child_process | child_process.exec(command[, options], callback) | 执行命令,缓冲输出 |
| child_process | child_process.execFile(file[, args], callback) | 执行可执行文件 |
| child_process | child_process.spawn(command[, args][, options]) | 流式执行命令,适合长输出 |
| child_process | child_process.fork(modulePath[, args]) | 派生新 Node 进程,自带 IPC |
| cluster | cluster.fork() | 创建工作进程 |
| cluster | cluster.isMaster / cluster.isWorker | 判断当前进程角色 |
| cluster | cluster.on('exit', callback) | 工作进程退出时重启 |


7. 流(stream)

| API | 说明 |
|-----|------|
| stream.Readable | 可读流基类 |
| stream.Writable | 可写流基类 |
| stream.Duplex | 双工流(可读可写) |
| stream.Transform | 转换流(处理数据) |
| readable.pipe(destination) | 管道传输,自动处理背压 |
| readable.on('data', callback) / readable.on('end', cb) | 消费流数据 |
| writable.write(chunk) / writable.end([chunk]) | 写入流数据 |

内置的 fs.createReadStreamfs.createWriteStreamzlib.createGzip 等返回的就是流实例。


8. Buffer 与编码

| API | 说明 |
|-----|------|
| Buffer.alloc(size) | 分配固定大小 Buffer(清零) |
| Buffer.from(string/array/buffer) | 从字符串或数组创建 Buffer |
| Buffer.concat(list[, totalLength]) | 拼接多个 Buffer |
| buf.toString([encoding]) | 转为字符串(默认 utf8) |
| buf.slice([start[, end]]) | 切片(共享内存) |
| buf.length | Buffer 字节长度 |
| buf.write(string[, offset][, encoding]) | 向 Buffer 写入字符串 |


9. 事件(events)

| API | 说明 |
|-----|------|
| const emitter = new EventEmitter() | 创建事件发射器 |
| emitter.on(event, listener) / emitter.addListener | 注册事件监听 |
| emitter.once(event, listener) | 单次监听 |
| emitter.emit(event[, ...args]) | 触发事件 |
| emitter.removeListener(event, listener) | 移除监听 |
| emitter.removeAllListeners([event]) | 移除所有监听器 |

流、HTTP 服务器等大量内置模块都继承自 EventEmitter,理解事件模式是 Node.js 的重要基础。


10. 工具与定时器

| 模块/全局 | API | 说明 |
|-----------|-----|------|
| util | util.promisify(original) | 将回调风格函数转为 Promise |
| util | util.types.isPromise(value) 等 | 类型判断辅助 |
| util | util.inspect(object[, options]) | 对象字符串表示(调试用) |
| 全局 | setTimeout(cb, delay) / clearTimeout(t) | 延时执行 |
| 全局 | setInterval(cb, delay) / clearInterval(t) | 周期执行 |
| 全局 | setImmediate(cb) / clearImmediate(t) | 在当前轮训后立即执行(宏任务) |
| 全局 | setTimeout(cb, 0) | 等价于零延时,与 setImmediate 执行时机有细微差异 |


11. URL 与查询字符串

| 模块 | API | 说明 |
|------|-----|------|
| url | new URL(input[, base]) | 解析 URL,返回结构化对象 |
| url | url.format(URL[, options]) | 将 URL 对象转为字符串 |
| querystring | querystring.parse(str[, sep][, eq]) | 解析查询字符串为对象 |
| querystring | querystring.stringify(obj[, sep][, eq]) | 将对象转为查询字符串 |

推荐优先使用 URL 类(WHATWG API),它更符合浏览器标准,且支持修改和生成 URL。


12. 断言与调试(assert / util.debug)

| 模块 | API | 说明 |
|------|-----|------|
| assert | assert.strictEqual(actual, expected) | 严格相等断言 |
| assert | assert.throws(fn) | 断言函数抛出异常 |
| assert | assert.fail() | 强制失败 |
| console | console.log/error/warn/info | 日志输出 |
| console | console.time(label) / console.timeEnd(label) | 计时器 |
| util | util.debuglog(section) | 通过 NODE_DEBUG 环境变量控制输出 |


本速查表覆盖了 Node.js 日常开发中最频繁接触到的内置模块接口。掌握这些 API 可以满足后端服务、脚本工具、系统监控等大部分场景需求。对于更深入的用法(如 async_hooksworker_threadscrypto),建议查阅官方文档或在具体实战中展开学习。