Pjattaforma JavaScript fuq in-naħa tas-server Node.js 19.0 disponibbli

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

Titjib ewlieni:

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

Il-pjattaforma Node.js tista 'tintuża kemm għall-manutenzjoni tas-server tal-applikazzjonijiet tal-Web kif ukoll għall-ħolqien ta' programmi regolari tan-netwerk tal-klijenti u tas-server. Biex tespandi l-funzjonalità tal-applikazzjonijiet għal Node.js, ġiet ippreparata ġabra kbira ta 'moduli, li fiha tista' ssib moduli bl-implimentazzjoni ta 'HTTP, SMTP, XMPP, DNS, FTP, IMAP, servers u klijenti POP3, moduli għall-integrazzjoni b'diversi oqfsa tal-web, WebSocket u Ajax handlers, konnetturi DBMS (MySQL, PostgreSQL, SQLite, MongoDB), magni tat-templating, magni CSS, implimentazzjonijiet ta 'algoritmi kripto u sistemi ta' awtorizzazzjoni (OAuth), parsers XML.

Biex jiġi żgurat l-ipproċessar ta 'numru kbir ta' talbiet paralleli, Node.js juża mudell ta 'eżekuzzjoni ta' kodiċi asinkronu bbażat fuq l-immaniġġjar ta 'avvenimenti li ma jimblukkawx u d-definizzjoni ta' handlers ta 'callback. Metodi appoġġjati għall-konnessjonijiet multiplexing huma epoll, kqueue, /dev/poll, u select. Għall-multiplexing tal-konnessjoni, tintuża l-librerija libuv, li hija add-on għal libev fuq sistemi Unix u IOCP fuq Windows. Il-librerija libeio tintuża biex tinħoloq pool ta 'ħajt, u c-ares huwa integrat biex iwettaq mistoqsijiet DNS f'modalità mhux imblukkata. Is-sejħiet kollha tas-sistema li jikkawżaw l-imblukkar huma eżegwiti ġewwa l-pool tal-ħajt u mbagħad, bħal dawk li jimmaniġġjaw is-sinjali, jittrasferixxu r-riżultat tax-xogħol tagħhom lura permezz ta 'pajp (pajp) bla isem. L-eżekuzzjoni tal-kodiċi JavaScript hija pprovduta permezz tal-użu tal-magna V8 żviluppata minn Google (barra minn hekk, Microsoft qed tiżviluppa verżjoni ta 'Node.js bil-magna Chakra-Core).

Fil-qalba tiegħu, Node.js huwa simili għall-Perl AnyEvent, Ruby Event Machine, Python Twisted oqfsa, u l-implimentazzjoni tal-avvenimenti Tcl, iżda l-linja tal-avvenimenti f'Node.js hija moħbija mill-iżviluppatur u tixbaħ l-immaniġġjar tal-avvenimenti f'applikazzjoni tal-web li taħdem. fil-browser. Meta tikteb applikazzjonijiet għal node.js, trid tikkunsidra l-ispeċifiċitajiet tal-ipprogrammar mmexxi mill-avvenimenti, pereżempju, minflok ma tagħmel "var result = db.query ("select..");" bl-istennija għat-tlestija tax-xogħol u l-ipproċessar sussegwenti tar-riżultati, Node.js juża l-prinċipju ta 'eżekuzzjoni asinkronika, i.e. il-kodiċi jinbidel f'"db.query ("select..", funzjoni (riżultat) {proċessar tar-riżultat});", li fih il-kontroll jgħaddi istantanjament għal aktar kodiċi, u r-riżultat tal-mistoqsija jiġi pproċessat hekk kif tasal id-data.

Sors: opennet.ru

Żid kumment