Node.js 內建 API
Deno Deploy 原生支援透過 node:
規格符號匯入內建 Node.js 模組,例如 fs
、path
和 http
。這允許在 Deno Deploy 中執行最初為 Node.js 編寫的程式碼,而無需變更。
以下是 Node.js HTTP 伺服器在 Deno Deploy 上執行的範例
import { createServer } from "node:http";
import process from "node:process";
const server = createServer((req, res) => {
const message = `Hello from ${process.env.DENO_REGION} at ${new Date()}`;
res.end(message);
});
server.listen(8080);
您可以在此處看到此範例的實際運作:https://dash.deno.com/playground/node-specifiers
使用 node:
規格時,Deno Deploy 的所有其他功能仍然可用。例如,即使使用 Node.js 模組,您也可以使用 Deno.env
存取環境變數。您也可以像往常一樣從外部網址匯入其他 ESM 模組。
下列 Node.js 模組可用
assert
assert/strict
async_hooks
buffer
child_process
cluster
console
constants
crypto
dgram
diagnostics_channel
dns
dns/promises
domain
events
fs
fs/promises
http
http2
https
module
net
os
path
path/posix
path/win32
perf_hooks
process
punycode
querystring
readline
stream
stream/consumers
stream/promises
stream/web
string_decoder
sys
timers
timers/promises
tls
tty
url
util
util/types
v8
vm
worker_threads
zlib
在多數情況下,這些模組的行為應與 Node.js 相同。由於 Deno Deploy 的沙盒行為,有些功能不可用
- 使用
child_process
執行二進位檔 - 使用
worker_threads
產生執行緒 - 使用
vm
建立內容並評估程式碼
注意:對於大多數使用案例來說,模擬 Node.js 模組已足夠,但尚未臻於完美。如果您遇到任何問題,請開啟問題。