O lo'o avanoa le fa'avae JavaScript Node.js 19.0

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

Fa'aleleia autu:

  • Движок 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), поддержание которых признано нецелесообразным из-за сложности сопровождения в актуальном виде при отсутствии должного плана их поддержки.

O le Node.js platform e mafai ona fa'aoga uma mo le lagolago i itu-aumau o talosaga i luga ole laiga, ma mo le fatuina o polokalame feso'ota'iga masani a tagata fa'atau ma server. Ina ia faʻalauteleina le faʻatinoga o talosaga mo Node.js, ua saunia se aofaʻiga tele o modules, lea e mafai ona e maua ai modules ma le faʻatinoga o le HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servers ma tagata faʻatau, modules mo le tuʻufaʻatasia. faʻatasi ai ma faʻasalalauga 'upega tafaʻilagi eseese, WebSocket ma Ajax handler , fesoʻotaʻiga i DBMS (MySQL, PostgreSQL, SQLite, MongoDB), faʻataʻitaʻiga afi, masini CSS, faʻatinoga o faʻataʻitaʻiga algorithms ma faiga faʻatagaina (OAuth), XML parsers.

Ina ia mautinoa le faagasologa o se numera tele o talosaga tutusa, Node.js faʻaaogaina se faʻataʻitaʻiga faʻataʻitaʻiga code asynchronous e faʻavae i luga o le faʻaogaina o mea e le faʻalavelaveina ma le faʻamatalaga o tagata e faʻafeiloaʻi. O auala lagolago mo feso'ota'iga fa'atele o le epoll, kqueue, /dev/poll, ma filifili. Mo fesoʻotaʻiga multiplexing, o loʻo faʻaogaina le faletusi libuv, o se faʻaopoopoga mo libev i luga o Unix system ma IOCP i Windows. O le faletusi libeio o loʻo faʻaaogaina e fai ai se filo filo, ma c-ares ua tuʻufaʻatasia e faʻatino ai fesili DNS i le le poloka poloka. O telefoni uma e mafua ai le poloka e faia i totonu o le vaitaele filo ma, e pei o le au faʻailo, toe faʻafeiloaʻi le taunuuga oa latou galuega i se paipa e le o taʻua. O le faʻatinoina o le code JavaScript e tuʻuina atu e ala i le faʻaogaina o le masini V8 na atiaʻe e Google (faʻaopoopo, Microsoft o loʻo atiaʻe se faʻasologa o Node.js ma le Chakra-Core engine).

I lona autu, Node.js e tutusa ma le Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, ma le Tcl event implementation, ae o le mea na tupu i Node.js o loʻo natia mai le atinaʻe ma e pei o le faʻafoeina o mea i totonu o se upega tafaʻilagi o loʻo tamoe. i le su'esu'e. Pe a tusia talosaga mo node.js, e tatau ona e mafaufau i faʻamatalaga patino o polokalame faʻaosoina, mo se faʻataʻitaʻiga, nai lo le faia o le "var result = db.query("select..");" faʻatasi ai ma le faʻatali mo le faʻamaeʻaina o galuega ma le gaioiga mulimuli ane o taunuʻuga, e faʻaaogaina e Node.js le mataupu faavae o le faʻataunuʻuina asynchronous, i.e. ua suia le code i le "db.query ("filifili ..", galuega (iuga) {result process});", lea o le a vave ona pasi atu le pule i le isi code, ma o le a faʻatautaia le faʻaiʻuga pe a oʻo mai faʻamatalaga.

puna: opennet.ru

Faaopoopo i ai se faamatalaga