Node.js Основные модули


пример

Node.js - движок Javascript (движок V8 для Google для Chrome, написанный на C ++), который позволяет запускать Javascript за пределами браузера. Хотя для расширения возможностей Node доступны многочисленные библиотеки, в комплект поставки входит набор основных модулей, реализующих основные функции.

В настоящее время в узле имеется 34 основных модуля:

[ 'assert',
  'buffer',
  'c/c++_addons',
  'child_process',
  'cluster',
  'console',
  'crypto',
  'deprecated_apis',
  'dns',
  'domain',
  'Events',
  'fs',
  'http',
  'https',
  'module',
  'net',
  'os',
  'path',
  'punycode',
  'querystring',
  'readline',
  'repl',
  'stream',
  'string_decoder',
  'timers',
  'tls_(ssl)',
  'tracing',
  'tty',
  'dgram',
  'url',
  'util',
  'v8',
  'vm',
  'zlib' ]

Этот список был получен из API документации Node https://nodejs.org/api/all.html (файл JSON: https://nodejs.org/api/all.json ).

Все основные модули на первый взгляд

утверждать

Модуль assert предоставляет простой набор тестов утверждения, которые можно использовать для проверки инвариантов.

буфер

До введения TypedArray в ECMAScript 2015 (ES6) язык JavaScript не имел механизма для чтения или обработки потоков двоичных данных. Класс Buffer был представлен как часть API Node.js, чтобы можно было взаимодействовать с октетными потоками в контексте таких потоков, как потоки TCP и операции с файловой системой.

Теперь, когда TypedArray был добавлен в ES6, класс Buffer реализует Uin t8Array API таким образом, который более оптимизирован и подходит для случаев использования Node.js.

C / C ++ _ аддоны

Node.js Addons - это динамически связанные общие объекты, написанные на C или C ++, которые могут быть загружены в Node.js с помощью функции require() и использованы так же, как если бы они были обычным модулем Node.js. Они используются, прежде всего, для обеспечения интерфейса между JavaScript, запущенным в библиотеках Node.js и C / C ++.

child_process

Модуль child_process предоставляет возможность генерировать дочерние процессы способом, похожим, но не идентичным, для popen (3).

кластер

Один экземпляр Node.js работает в одном потоке. Чтобы воспользоваться преимуществами многоядерных систем, пользователь иногда захочет запустить кластер из процессов Node.js для обработки нагрузки. Модуль кластера позволяет вам легко создавать дочерние процессы, которые используют общий доступ к портам сервера.

приставка

console модуль предоставляет простую консоль отладки, похожую на механизм консоли JavaScript, предоставляемый веб-браузерами.

крипто-

crypto модуль обеспечивает криптографическую функциональность , которая включает в себя набор оберток для хэша OpenSSL , , HMAC, шифр, расшифровывать, подписывать и проверять функции.

deprecated_apis

Node.js может испортить API, если: (a) использование API считается небезопасным; (b) был предоставлен улучшенный альтернативный API или (c) нарушение изменений в API ожидается в будущем крупном выпуске ,

DNS

Модуль dns содержит функции, принадлежащие двум различным категориям:

  1. Функции, которые используют базовые средства операционной системы для выполнения разрешения имен, и которые не обязательно выполняют какую-либо сетевую связь. Эта категория содержит только одну функцию: dns.lookup() .
  2. Функции, которые подключаются к реальному DNS-серверу для выполнения разрешения имен и всегда используют сеть для выполнения DNS-запросов. Эта категория содержит все функции в модуле dns кроме dns.lookup() .

домен

Этот модуль ожидает отмены . После того, как API-интерфейс замены будет завершен, этот модуль будет полностью устарел. У большинства конечных пользователей не должно быть причин использовать этот модуль. Пользователи, которые абсолютно должны обладать функциональностью, которую предоставляют домены, могут на это рассчитывать, но в будущем они должны будут перейти к другому решению.

События

Большая часть основного API-интерфейса Node.js построена вокруг идиоматической асинхронной архитектуры, управляемой событиями, в которой определенные типы объектов (называемые «эмиттеры») периодически излучают именованные события, которые вызывают функции-объекты («слушатели»).

фс

Файловый ввод-вывод обеспечивается простыми оболочками вокруг стандартных функций POSIX. Для использования этого модуля require('fs') . Все методы имеют асинхронные и синхронные формы.

HTTP

Интерфейсы HTTP в Node.js предназначены для поддержки многих функций протокола, которые традиционно трудно использовать. В частности, большие, возможно, закодированные в блоке сообщения. Интерфейс не требует буферизации целых запросов или ответов - пользователь может передавать данные.

HTTPS

HTTPS - это протокол HTTP через TLS / SSL. В Node.js это реализовано как отдельный модуль.

модуль

Node.js имеет простую систему загрузки модуля. В Node.js файлы и модули соответствуют друг другу (каждый файл рассматривается как отдельный модуль).

сеть

net модуль предоставляет асинхронную сеть обертки. Он содержит функции для создания серверов и клиентов (называемых потоками). Вы можете включить этот модуль с require('net'); ,

Операционные системы

Модуль os предоставляет ряд методов, связанных с операционной системой.

дорожка

Модуль path предоставляет утилиты для работы с файловыми и каталогами.

Punycode

Версия модуля punycode, входящего в состав Node.js, устарела .

Строка запроса

Модуль querystring предоставляет утилиты для синтаксического анализа и форматирования строк запроса URL.

Readline

Модуль readline предоставляет интерфейс для чтения данных из Readable stream (например, process.stdin ) по одной строке за раз.

РЕПЛ

Модуль repl предоставляет реализацию Read-Eval-Print-Loop (REPL), которая доступна как в виде отдельной программы, так и в других приложениях.

поток

Поток представляет собой абстрактный интерфейс для работы с потоковыми данными в Node.js. Модуль stream предоставляет базовый API, который упрощает сбор объектов, реализующих интерфейс потока.

Существует множество объектов потока, предоставляемых Node.js. Например, запрос на HTTP-сервер и process.stdout являются экземплярами потока.

string_decoder

Модуль string_decoder предоставляет API для декодирования объектов Buffer в строки таким образом, который сохраняет кодированные многобайтовые символы UTF-8 и UTF-16.

таймеры

Модуль timer предоставляет глобальный API для функций планирования, которые будут вызываться в некоторый будущий период времени. Поскольку функции таймера являются глобальными, нет необходимости require('timers') использовать API.

Функции таймера в Node.js реализуют аналогичный API как API таймеров, предоставляемый веб-браузерами, но используют другую внутреннюю реализацию, которая построена вокруг цикла событий Node.js.

tls_ (SSL)

Модуль tls обеспечивает реализацию протоколов безопасности транспортного уровня (TLS) и протокола Secure Socket Layer (SSL), которые построены поверх OpenSSL.

трассировка

Trace Event предоставляет механизм для централизации информации трассировки, созданной V8, ядром узла и кодом пользовательского пространства.

Трассировку можно включить, передав --trace-events-enabled при запуске приложения Node.js.

TTY

Модуль tty предоставляет tty.ReadStream и tty.WriteStream . В большинстве случаев нет необходимости или возможно использовать этот модуль напрямую.

dgram

Модуль dgram обеспечивает реализацию сокетов UDP Datagram.

URL

Модуль url предоставляет утилиты для разрешения URL-адресов и анализа.

Util

Модуль util в первую очередь предназначен для поддержки собственных внутренних API-интерфейсов Node.js. Однако многие утилиты также полезны для разработчиков приложений и модулей.

v8

Модуль v8 предоставляет API-интерфейсы, специфичные для версии V8, встроенной в двоичный файл Node.js.

Примечание . API и реализация могут быть изменены в любое время.

В.М.

Модуль vm предоставляет API для компиляции и запуска кода в контекстах виртуальной машины V8. Код JavaScript может быть скомпилирован и запущен немедленно или скомпилирован, сохранен и запущен позже.

Примечание . Модуль vm не является механизмом безопасности. Не используйте его для запуска ненадежного кода .

Zlib

Модуль zlib обеспечивает функции сжатия, реализованные с использованием Gzip и Deflate / Inflate.