A piattaforma JavaScript di u latu di u servitore Node.js 19.0 dispunibule

Состоялся релиз Node.js 19.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 19 отнесён к ветке с обычным сроком поддержки, обновления для которой будут выпускаться до июня 2023 года. В ближайшие дни будет завершена стабилизация ветки Node.js 18, которая получит статус LTS и будет поддерживаться до апреля 2025 года. Сопровождение прошлой LTS-ветки Node.js 16.0 продлится до сентября 2023 года, а позапрошлой LTS-ветки 14.0 до апреля 2023 года.

Principali miglioramenti:

  • Движок V8 обновлён до версии 10.7, применяемой в Chromium 107. Из изменений в движке по сравнению с веткой Node.js 18 отмечается реализация третьей версии API Intl.NumberFormat, в которой добавлены новые функции formatRange(), formatRangeToParts() и selectRange(), группировка множеств, новые опции округления и задания точности, возможность интерпретации строк как десятичных чисел. Также обновлены входящие в комплект зависимости llhttp 8.1.0 и npm 8.19.2.
  • Предложена экспериментальная команда «node —watch» с реализацией режима наблюдения, обеспечивающего перезапуск процесса при изменении импортированного файла (например, в случае выполнения «node —watch index.js» процесс будет автоматически перезапущен при изменении index.js).
  • Для всех исходящих HTTP/HTTPS-соединений включена поддержка механизма HTTP 1.1 Keep-Alive, оставляющего соединение определённое время открытым для обработки в рамках одного соединения нескольких HTTP-запросов. Предполагается, что применение Keep-Alive позволит повысить пропускную способность и производительность. По умолчанию таймаут удержания соединения открытым выставлен в 5 секунд. В реализацию HTTP-клиента добавлена поддержка разбора HTTP-заголовка Keep-Alive в ответах сервера, а в реализацию HTTP-сервера Node.js добавлено автоматическое отсоединение неактивных клиентов, использующих Keep-Alive.
  • В разряд стабильных переведён API WebCrypto, за исключением функций, использующих алгоритмы Ed25519, Ed448, X25519 и X448. Для доступа к модулю WebCrypto теперь можно использовать globalThis.crypto или require(‘node:crypto’).webcrypto.
  • Удалена поддержка инструментариев трассировки DTrace, SystemTap и ETW (Event Tracing for Windows), поддержание которых признано нецелесообразным из-за сложности сопровождения в актуальном виде при отсутствии должного плана их поддержки.

A piattaforma Node.js pò esse usata sia per u mantenimentu di u servitore di l'applicazioni Web sia per a creazione di prugrammi di rete di client è servitore regulare. Per espansione a funziunalità di l'applicazioni per Node.js, hè stata preparata una grande cullizzioni di moduli, in quale pudete truvà moduli cù l'implementazione di HTTP, SMTP, XMPP, DNS, FTP, IMAP, servitori POP3 è clienti, moduli per integrazione. cù diversi frameworks web, gestori WebSocket è Ajax, connettori DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mutori di mudelli, motori CSS, implementazioni di algoritmi criptografici è sistemi d'autorizazione (OAuth), parsers XML.

Per assicurà a trasfurmazioni di un gran numaru di richieste parallele, Node.js usa un mudellu di esecuzione di codice asincronu basatu nantu à a gestione di l'eventi senza bloccu è a definizione di i gestori di callback. I metudi supportati per e cunnessione multiplexing sò epoll, kqueue, /dev/poll, è selezziunate. Per a multiplexing di cunnessione, a biblioteca libuv hè aduprata, chì hè un add-on per libev in sistemi Unix è IOCP in Windows. A libreria libeio hè aduprata per creà un pool di fili, è c-ares hè integratu per eseguisce dumande DNS in modu senza bloccu. Tutti i chjami di u sistema chì causanu u bloccu sò eseguiti in u pool di filu è dopu, cum'è i gestori di signali, trasfirìanu u risultatu di u so travagliu à traversu una pipa senza nome (pipa). L'esekzione di codice JavaScript hè furnita per mezu di l'usu di u mutore V8 sviluppatu da Google (in più, Microsoft sviluppa una versione di Node.js cù u mutore Chakra-Core).

In u so core, Node.js hè simile à Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, è l'implementazione di l'avvenimentu Tcl, ma u ciclu di l'avvenimentu in Node.js hè oculatu da u sviluppatore è s'assumiglia à a gestione di l'avvenimenti in una applicazione web in esecuzione. in u navigatore. Quandu scrivite l'applicazioni per node.js, avete bisognu di cunsiderà e specificità di prugrammazione guidata da l'avvenimentu, per esempiu, invece di fà "var result = db.query ("select..");" cù l'aspittà di a fine di u travagliu è u processu sussegwente di i risultati, Node.js usa u principiu di l'esekzione asincrona, i.e. u codice hè trasfurmatu in "db.query ("select ..", funzione (result) {result processing});", in quale u cuntrollu passerà istantaneamente à più codice, è u risultatu di a quistione serà processatu cum'è data ghjunghje.

Source: opennet.ru

Add a comment