Node.js速查表

Node.js核心API速查表,涵盖模块系统、文件操作、HTTP服务、流、事件、缓冲区、子进程等常用API参考。

📦 模块系统

语法说明
require("module")CommonJS导入模块
module.exports = { ... }CommonJS导出(整个模块)
exports.name = valueCommonJS导出(单个属性)
import fs from "fs"ESM默认导入
import { readFile } from "fs"ESM命名导入
export default function() {}ESM默认导出
export const name = valueESM命名导出
__dirname当前文件所在目录的绝对路径
__filename当前文件的绝对路径
import.meta.urlESM中获取当前模块URL
require.resolve("module")解析模块路径但不加载
require.cache模块缓存对象,可删除以强制重新加载

📄 文件系统

方法说明
fs.readFile(path, cb)异步读取文件内容
fs.readFileSync(path)同步读取文件内容
fs.writeFile(path, data, cb)异步写入文件(覆盖)
fs.writeFileSync(path, data)同步写入文件
fs.appendFile(path, data, cb)异步追加内容到文件
fs.existsSync(path)同步检查文件或目录是否存在
fs.access(path, cb)异步检查文件或目录的访问权限
fs.readdir(path, cb)异步读取目录内容
fs.mkdir(path, cb)异步创建目录
fs.mkdirSync(path, { recursive: true })同步递归创建目录
fs.rm(path, { recursive: true }, cb)异步删除文件或目录
fs.unlink(path, cb)异步删除文件
fs.stat(path, cb)异步获取文件/目录信息
fs.copyFile(src, dest, cb)异步复制文件
fs.rename(oldPath, newPath, cb)异步重命名/移动文件

🌐 HTTP模块

方法说明
http.createServer(callback)创建HTTP服务器
server.listen(port)服务器监听指定端口
http.get(url, cb)发起GET请求
http.request(options, cb)发起HTTP请求
req.method请求方法(GET/POST等)
req.url请求URL路径
req.headers请求头对象
req.on("data", chunk => {})接收请求体数据
req.on("end", () => {})请求体接收完成
res.writeHead(status, headers)设置响应状态码和头
res.setHeader("Content-Type", type)设置响应头
res.write(data)写入响应数据
res.end(data)结束响应并发送数据
res.statusCode设置响应状态码

📁 路径模块

方法说明
path.join("a", "b", "c")拼接路径片段
path.resolve("a", "b")解析为绝对路径
path.basename("/a/b/c.txt")获取路径最后一部分(文件名)
path.dirname("/a/b/c.txt")获取目录部分
path.extname("file.txt")获取文件扩展名
path.normalize("/a//b/../c")规范化路径(解析.和..)
path.parse("/a/b/c.txt")将路径解析为对象
path.format(obj)将路径对象格式化为字符串
path.relative("/a", "/a/b/c")计算相对路径
path.sep路径分隔符(/ 或 \)
path.delimiter环境变量路径分隔符

🌊 流

类型/方法说明
fs.createReadStream(path)创建可读流
fs.createWriteStream(path)创建可写流
stream.pipe(dest)将可读流管道到可写流
stream.on("data", chunk => {})监听流数据事件
stream.on("end", () => {})流读取结束事件
stream.on("error", err => {})流错误事件
new Transform({ transform(chunk, enc, cb) {} })自定义转换流
pipeline(src, ...transforms, dest, cb)管道连接多个流并处理错误
stream.finished(stream, cb)监听流结束
stream.Readable.from(iterable)从迭代器创建可读流

📡 事件

方法说明
emitter.on(event, listener)注册事件监听器
emitter.once(event, listener)注册一次性事件监听器
emitter.emit(event, ...args)触发事件
emitter.removeListener(event, listener)移除事件监听器
emitter.removeAllListeners(event)移除指定事件的所有监听器
emitter.eventNames()获取已注册的事件名列表
emitter.listenerCount(event)获取指定事件的监听器数量
EventEmitter.defaultMaxListeners默认最大监听器数量(默认10)
emitter.setMaxListeners(n)设置最大监听器数量
process.on("uncaughtException", cb)监听未捕获的异常
process.on("unhandledRejection", cb)监听未处理的Promise拒绝

⚙️ 子进程

方法说明
child_process.spawn(cmd, args, options)创建子进程执行命令(流式输出)
child_process.exec(cmd, cb)执行命令并缓冲输出
child_process.execFile(file, args, cb)执行可执行文件
child_process.fork(modulePath)创建子进程运行Node.js模块
child.on("exit", code => {})监听子进程退出事件
child.on("message", msg => {})接收子进程消息
child.send(data)向子进程发送消息
child.stdin.write(data)向子进程标准输入写入数据
child.stdout.on("data", cb)监听子进程标准输出
child.kill(signal)终止子进程
process.env环境变量对象
process.exit(code)终止当前进程

🔧 实用模块

模块/方法说明
os.platform()获取操作系统平台
os.cpus()获取CPU信息
os.totalmem()获取总内存
os.freemem()获取空闲内存
os.uptime()获取系统运行时间(秒)
os.homedir()获取用户主目录
crypto.createHash("sha256")创建哈希实例
crypto.randomBytes(size)生成随机字节
crypto.randomUUID()生成UUID v4
new URL("https://example.com/path?q=1")URL解析
new URLSearchParams(params)查询参数处理
querystring.parse(str)解析查询字符串为对象
querystring.stringify(obj)将对象序列化为查询字符串
util.promisify(fn)将回调函数转换为Promise
util.inspect(obj, { depth: null })深度格式化对象为字符串

关于Node.js

Node.js是基于Chrome V8引擎的JavaScript运行时,使JavaScript可以在服务器端运行。掌握这些核心API可以帮助你构建高性能的网络应用。建议使用async/await配合Promise处理异步操作。