Deno обеспечивает всестороннюю поддержку встроенных модулей и глобальных объектов Node.js, что позволяет легко переносить приложения и библиотеки Node.js. Эти API соответствуют спецификациям Node.js и предоставляют знакомые возможности разработчикам, переходящим с Node.js.
Ключевые возможности
-
Поддержка встроенных модулей: доступ к модулям Node.js с помощью префикса
node:(например,import fs from "node:fs") - Глобальные объекты: глобальные объекты Node.js доступны в области пакетов npm
- Уровень совместимости: беспроблемное взаимодействие с существующим кодом Node.js
- Производительность: нативные реализации, оптимизированные для среды выполнения Deno
Основные модули
Файловая система
-
node:fs— операции с файловой системой (чтение, запись, наблюдение, статистика) -
node:fs/promises— API файловой системы на основе промисов -
node:path— кроссплатформенные утилиты для работы с путями
Сеть и HTTP
-
node:http— возможности HTTP-сервера и клиента -
node:https— HTTPS-сервер и клиент с поддержкой TLS -
node:http2— реализация сервера и клиента HTTP/2 -
node:net— утилиты для работы с TCP-сетями -
node:dns— разрешение DNS-имен и функции поиска
Процессы и система
-
node:process— сведения о процессах и управление ими -
node:os— системные утилиты и сведения об операционной системе -
node:child_process— создание дочерних процессов и управление ими -
node:cluster— поддержка кластеризации нескольких процессов
Криптография и безопасность
-
node:crypto— криптографические возможности (хеширование, шифрование, сертификаты) -
node:tls— уровень защищённой связи TLS/SSL
Данные и потоки
-
node:stream— интерфейсы потоков (чтение, запись, преобразование) -
node:buffer— работа с двоичными данными с помощью класса Buffer -
node:zlib— сжатие и распаковка данных -
node:string_decoder— декодирование буферов в строки
Утилиты
-
node:util— вспомогательные функции (promisify, inspect, types) -
node:events— реализация шаблона эмиттера событий -
node:url— утилиты для разбора и форматирования URL -
node:querystring— утилиты для работы со строками запроса -
node:assert— поддержка тестирования с помощью утверждений
Разработка и тестирование
-
node:vm— контексты виртуальных машин для выполнения кода -
node:repl— функциональность цикла чтение—вычисление—вывод -
node:inspector— интеграция инспектора V8 для отладки
Глобальные объекты
Глобальные объекты Node.js доступны в области пакетов npm и могут быть импортированы из соответствующих модулей node::
-
Buffer— обработка двоичных данных -
process— сведения о процессе и окружении -
global— объект глобального пространства имён -
__dirname/__filename— сведения о путях модулей -
Веб-стандарты —
fetch,URL,TextEncoder,cryptoи многое другое
Примеры использования
Базовый импорт модуля
import fs from "node:fs";
import { readFile } from "node:fs/promises";
import path from "node:path";
// Synchronous file reading
const data = fs.readFileSync("file.txt", "utf8");
// Asynchronous file reading
const content = await readFile("file.txt", "utf8");
// Path manipulation
const fullPath = path.join("/users", "documents", "file.txt");
HTTP-сервер
import http from "node:http";
const server = http.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Hello from Node.js API in Deno!");
});
server.listen(3000, () => {
console.log("Server running on port 3000");
});
Криптографические операции
import crypto from "node:crypto";
// Generate hash
const hash = crypto.createHash("sha256");
hash.update("Hello World");
const digest = hash.digest("hex");
// Generate random bytes
const randomBytes = crypto.randomBytes(16);
Совместимость
Работа над совместимостью с Node.js продолжается. Большинство основных API Node.js поддерживаются с высокой точностью. Подробную информацию о совместимости см. здесь:
- Ознакомьтесь с нашим руководством по совместимости с Node.js
- Проверьте результаты тестирования Node.js, чтобы узнать о покрытии конкретных тестов
- Сообщите о проблемах совместимости на GitHub
Переход с Node.js
Пошаговое руководство по переносу проекта Node.js в Deno см. в руководстве по миграции.
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/about