Spec-Zone.ru › Deno 2

API Node.js

Deno предоставляет полифилы для ряда встроенных модулей и глобальных объектов Node.js.

Изучить встроенные API Node.js

Работа над совместимостью с Node.js продолжается — помогите нам выявить пробелы и сообщите, какие модули вам нужны, создав issue на GitHub.

Полностью поддерживаемые модули (22/44)

node:assert

node:buffer

node:child_process

node:console

node:crypto

Certificate: Методы являются неработающими заглушками.

generateKeyPair: Параметр x448 не поддерживается.

generatePrime: Параметры safe, add и rem не поддерживаются.

KeyObject: Следующие элементы являются неработающими заглушками:

  • from
  • symmetricKeySize
  • equals

publicDecrypt: Этот символ является неработающей заглушкой.

secureHeapUsed: Этот символ является неработающей заглушкой.

setEngine: Этот символ является неработающей заглушкой.

ECDH: Метод convertKey является неработающей заглушкой.

Sign: Методы sign и verify не поддерживаются, если входные данные не относятся к типу BinaryLike.

node:diagnostics_channel

node:events

node:fs

writeFile: Не поддерживается кодировка utf16le, latin1 и ucs2.

writeFileSync: Не поддерживается кодировка utf16le, latin1 и ucs2.

node:fs/promises

lchmod: Реализация lchmod не реализована.

node:module

Module: Метод register является неработающей заглушкой.

node:os

node:path

node:punycode

node:querystring

node:readline

node:sqlite

Этот модуль добавлен в Deno v2.2.

node:stream

node:string_decoder

node:test

node:timers

node:tty

node:url

Частично поддерживаемые модули (16/44)

node:async_hooks

AsyncResource: Реализация AsyncResource является неработающей заглушкой.

executionAsyncId: Реализация executionAsyncId является неработающей заглушкой.

createHook: Реализация createHook является неработающей заглушкой.

node:dgram

Socket: Следующие методы являются неработающими заглушками:

  • addMembership
  • addSourceSpecificMembership
  • dropMembership
  • dropSourceSpecificMembership
  • setBroadcast
  • setMulticastInterface
  • setMulticastLoopback
  • setMulticastTtl
  • setTtl

node:dns

resolve: Параметр ttl не поддерживается.

resolve4: Параметр ttl не поддерживается.

resolve6: Параметр ttl не поддерживается.

resolveCname: Параметр ttl не поддерживается.

resolveCaa: Параметр ttl не поддерживается.

resolveMx: Параметр ttl не поддерживается.

resolveNaptr: Параметр ttl не поддерживается.

resolveNs: Параметр ttl не поддерживается.

resolvePtr: Параметр ttl не поддерживается.

resolveSoa: Параметр ttl не поддерживается.

resolveSrv: Параметр ttl не поддерживается.

resolveTxt: Параметр ttl не поддерживается.

resolveAny: Параметр ttl не поддерживается.

node:http

RequestOptions: Параметр createConnection не поддерживается.

ClientRequestArgs: Параметр createConnection не поддерживается.

ClientRequest: Параметр конструктора createConnection не поддерживается.

request: Параметр конструктора createConnection не поддерживается.

get: Параметр конструктора createConnection не поддерживается.

node:http2

Http2Session: Следующие методы являются неработающими заглушками:

  • setLocalWindowSize
  • ping
  • localSettings
  • remoteSettings
  • settings
  • ref
  • unref

ServerHttp2Session: Все методы являются неработающими заглушками.

Http2Stream: Следующие методы являются неработающими заглушками:

  • aborted
  • bufferSize
  • endAfterHeaders
  • id
  • pending
  • priority
  • rstCode
  • sentHeaders
  • sentInfoHeaders
  • sentTrailers
  • state

ClientHttp2Stream: Все методы являются неработающими заглушками.

getDefaultSettings: Эта функция является неработающей заглушкой.

getPackedSettings: Эта функция является неработающей заглушкой.

getUnpackedSettings: Эта функция является неработающей заглушкой.

node:https

Server: Параметры cert и key не поддерживают массив в качестве входных данных.

node:inspector

Поддерживается console. Остальные API являются неработающими заглушками.

node:net

Socket: Параметр fd не поддерживается.

node:perf_hooks

performance: Метод eventLoopUtilization является неработающей заглушкой. Метод timerify не реализован.

monitorEventLoopDelay: Этот символ не реализован.

node:process

События multipleResolves и worker не поддерживаются.

node:tls

createSecurePair: Этот символ в настоящее время не поддерживается.

node:util

transferableAbortSignal: Этот символ в настоящее время не поддерживается.

transferableAbortController: Этот символ в настоящее время не поддерживается.

MIMEParams: Этот символ в настоящее время не поддерживается.

MIMEType: Этот символ в настоящее время не поддерживается.

getSystemErrorMap: Этот символ в настоящее время не поддерживается.

node:v8

Поддерживаются cachedDataVersionTag и getHeapStatistics, serialize и deserialize. setFlagsFromStrings ничего не делает. Другие API не поддерживаются и вызовут ошибку.

setFlagsFromStrings: Эта функция ничего не делает.

node:vm

measureMemory: Это неработающая заглушка.

compile: Параметр importModuleDynamically не поддерживается.

createContext: Параметр importModuleDynamically не поддерживается.

Script: Параметр importModuleDynamically не поддерживается. Метод runInContext не поддерживает остановку на SIGINT.

node:worker_threads

parentPort: Метод emit не поддерживается. Метод removeAllListeners не поддерживается.

markAsUntransferable: Этот символ не поддерживается.

moveMessagePortToContext: Этот символ не поддерживается.

receiveMessageOnPort: Этот символ не поддерживается.

Worker: Метод getHeapSnapshot не поддерживается.

node:zlib

Options: Этот класс не поддерживается.

BrotliOptions: Этот класс не поддерживается.

BrotliCompress: Этот класс не поддерживается.

BrotliDecompress: Этот класс не поддерживается.

ZlibBase: Этот класс не поддерживается.

Неподдерживаемые модули (6/44)

node:cluster

Все экспортируемые элементы являются неработающими заглушками.

Все символы: Этот символ является неработающей заглушкой.

node:domain

Все экспортируемые элементы являются неработающими заглушками. Этот модуль Node устарел.

Все символы: Этот символ является неработающей заглушкой.

node:repl

Все символы не поддерживаются.

Все символы: Этот символ не поддерживается.

node:sea

Все символы не поддерживаются.

Все символы: Этот символ не поддерживается.

node:trace_events

Все экспортируемые элементы являются неработающими заглушками.

Все символы: Этот символ является неработающей заглушкой.

node:wasi

Все экспортируемые элементы являются неработающими заглушками.

Все символы: Этот символ является неработающей заглушкой.

Глобальные объекты

Это список глобальных объектов Node, поддерживаемых Deno. Эти глобальные объекты доступны только в области пакета npm. В собственном коде их можно использовать, импортировав из соответствующего модуля node:.

Имя глобального объекта Статус
AbortController ✅
AbortSignal ✅
Blob ✅
Buffer ✅
ByteLengthQueuingStrategy ✅
__dirname ⚠️ Информация
__filename ⚠️ Информация
atob ✅
BroadcastChannel ✅
btoa ✅
clearImmediate ✅
clearInterval ✅
clearTimeout ✅
CompressionStream ✅
console ✅
CountQueuingStrategy ✅
Crypto ✅
CryptoKey ✅
CustomEvent ✅
CustomEvent ✅
DecompressionStream ✅
Event ✅
EventTarget ✅
exports ✅
fetch ✅
File ✅
FormData ✅
global ✅
Headers ✅
MessageChannel ✅
MessageEvent ✅
MessagePort ✅
module ✅
PerformanceEntry ✅
PerformanceMark ✅
PerformanceMeasure ✅
PerformanceObserver ✅
PerformanceObserverEntryList ❌
PerformanceResourceTiming ❌
performance ✅
process ✅
queueMicrotask ✅
ReadableByteStreamController ✅
ReadableStream ✅
ReadableStreamBYOBReader ✅
ReadableStreamBYOBRequest ✅
ReadableStreamDefaultController ✅
ReadableStreamDefaultReader ✅
require ✅
Response ✅
Request ✅
setImmediate ✅
setInterval ✅
setTimeout ✅
structuredClone ✅
structuredClone ✅
SubtleCrypto ✅
DOMException ✅
TextDecoder ✅
TextDecoderStream ✅
TextEncoder ✅
TextEncoderStream ✅
TransformStream ✅
TransformStreamDefaultController ✅
URL ✅
URLSearchParams ✅
URLSearchParams ✅
WebAssembly ✅
WritableStream ✅
WritableStreamDefaultController ✅
WritableStreamDefaultWriter ✅

__dirname и __filename

__dirname и __filename — это глобальные объекты CommonJS. Они доступны внутри модулей CommonJS в области пакета npm, но не определены в модулях ES. В собственных модулях ES используйте вместо них import.meta.dirname и import.meta.filename, которые возвращают те же значения для текущего модуля.

Примечания к модулям

node:worker_threads

В Deno 2.7 значительно улучшена совместимость с node:worker_threads:

  • Потоки stdout и stderr корректно передаются из рабочих потоков в родительский процесс.
  • Теперь worker.terminate() возвращает корректный код выхода.
  • Поддерживаются параметры workerData, execArgv и threadName.
  • Реализованы worker.performance.eventLoopUtilization() и worker.cpuUsage().
  • Для BroadcastChannel из рабочих потоков корректно вызываются ref/unref.

node:child_process

В Deno 2.7 улучшена совместимость с node:child_process:

  • Потоки stdio (stdin, stdout, stderr) представлены экземплярами Socket, как и в Node.js.
  • Перенаправление оболочки (>, <, >>) работает в exec() и execSync().
  • fork() принимает URL в качестве пути к модулю.
  • Параметры timeout и killSignal поддерживаются в exec() и spawn().
  • Переменная окружения NODE_OPTIONS учитывается для процессов, запущенных с fork().

node:zlib

В Deno 2.7 в node:zlib добавлена поддержка сжатия Zstd:

import zlib from "node:zlib";
import { promisify } from "node:util";

const compress = promisify(zlib.zstdCompress);
const decompress = promisify(zlib.zstdDecompress);

const compressed = await compress(Buffer.from("Hello, Deno!"));
const result = await decompress(compressed);
console.log(result.toString()); // "Hello, Deno!"

Также доступны синхронные варианты zlib.zstdCompressSync() и zlib.zstdDecompressSync().

node:sqlite

В Deno 2.7 в node:sqlite добавлено несколько новых API:

  • DatabaseSync.setAuthorizer(callback) — регистрирует callback, вызываемый для каждой операции SQL, обеспечивая детальный контроль доступа к разрешённым таблицам и операциям:
import { constants, DatabaseSync } from "node:sqlite";

const db = new DatabaseSync(":memory:");
db.exec("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)");

// Allow reads, deny everything else
db.setAuthorizer((_action, _table) => {
  return constants.SQLITE_OK;
});
  • DatabaseSync.enableDefensive(enabled) — включает или отключает защитный режим, который предотвращает потенциально опасные операции с базой данных, например изменение схемы во время выполнения.

  • DatabaseSync.createTagStore() — создаёт кэш подготовленных выражений, сопоставляющий строки SQL с скомпилированными выражениями для эффективного повторного выполнения.

Результаты тестов Node.js

Если вам нужна более подробная информация о совместимости для каждого отдельного теста, список успешно пройденных и не пройденных тестов Node.js доступен на этой странице.

Последнее обновление: 30 июля 2026 г.

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/node_apis

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API