文档迁移

Node API 替换表

在 Node 内置模块、Web API 与 Deno API 之间做可验证的迁移选择

Deno 支持大量 node: API,所以迁移不等于把每个调用都重写。先用兼容 API 跑通,再在能减少依赖或改善可移植性时采用 Web/Deno API。

Node.jsDeno / Web API建议
fs.promises.readFile(path, "utf8")Deno.readTextFile(path)两者都需要文件权限
fs.promises.writeFileDeno.writeTextFile收紧到具体目录
http.createServerDeno.serve新 HTTP 服务首选 Web Request/Response
process.env.NAMEDeno.env.get("NAME")只授权指定变量
process.argv.slice(2)Deno.argsCLI 参数可直接迁移
child_process.spawnnew Deno.Command()需要 --allow-run=<cmd>
__dirnamenew URL(".", import.meta.url)保持 URL 语义,必要时转路径
crypto.randomUUID()crypto.randomUUID()Web API 可直接复用
BufferUint8Array / TextEncoder协议边界优先 Web 类型

一个文件读取示例

// 兼容优先:保留 Node API
import { readFile } from "node:fs/promises";
const a = await readFile("config.json", "utf8");

// Deno-first:更短的文本 API
const b = await Deno.readTextFile("config.json");

两种代码都应以同样的最小权限运行:

deno run --allow-read=config.json main.ts

迁移测试至少覆盖路径、编码、stream/backpressure、信号、超时与错误类型;函数名相似不代表边界行为完全相同。

官方参考:Node APIsDeno APIsWeb APIs

输入关键词搜索全部文档。