Node.js 全局变量
global / globalThis
js
// Node.js 中用 global 定义全局变量(类似浏览器的 window)
global.xxx = 'xxx'
// globalThis(ES2020)自动适配环境:Node → global,浏览器 → window
globalThis.xxx = 'xxx'__dirname / __filename(仅 CJS)
js
__dirname // 当前模块所在目录的绝对路径
__filename // 当前模块文件的绝对路径(含文件名+扩展名)ESM 替代方案:
js
// Node < 20.11
import { fileURLToPath } from 'node:url'
import { dirname } from 'node:path'
const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)
// Node >= 20.11.0
import.meta.filename // 同 __filename
import.meta.dirname // 同 __dirnameprocess(全局对象,无需导入)
| 属性/方法 | 说明 |
|---|---|
process.argv | 命令行参数数组 |
process.env | 环境变量对象 |
process.cwd() | 当前工作目录 |
process.on(event, cb) | 监听事件(exit, uncaughtException 等) |
process.exit([code]) | 退出进程 |
process.pid | 进程 PID |
Buffer(全局类,处理二进制数据)
js
// 创建
Buffer.alloc(size) // 创建指定大小的 Buffer
Buffer.from(array) // 从数组创建
Buffer.from(string) // 从字符串创建
// 读写
buffer[index] // 读写指定字节
buffer.length // 字节长度
buffer.toString() // 转为字符串
// 转换
buffer.toJSON() // 转 JSON
buffer.slice([start, end]) // 切片
// 工具
Buffer.isBuffer(obj) // 判断是否为 Buffer
Buffer.concat(list) // 拼接多个 Buffer从 Node 6.0 起弃用
new Buffer(),请用Buffer.alloc()/Buffer.from()
其他可用 API
Node 无 DOM/BOM,但 ECMAScript 标准 API 照常可用: setTimeout setInterval Promise Math console Date fetch(v18+) 等