Platforma JavaScript-a server-side Node.js 19.0 heye

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

Pêşveçûnên sereke:

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

Platforma Node.js hem ji bo domandina servera serîlêdanên Webê hem jî ji bo afirandina bernameyên torê yên xerîdar û serverê yên birêkûpêk dikare were bikar anîn. Ji bo berfirehkirina fonksiyona sepanan ji bo Node.js, berhevokek mezin a modulan hatiye amadekirin, ku tê de hûn dikarin modulên bi pêkanîna HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 pêşkêşker û xerîdar, modulên ji bo yekbûnê bibînin. bi çarçoveyên cûrbecûr yên malperê, hilgirên WebSocket û Ajax, girêdanên DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorên şablonê, motorên CSS, pêkanînên algorîtmayên krîpto û pergalên destûrnameyê (OAuth), parserên XML.

Ji bo ku pêvajokirina hejmareke mezin ji daxwazên paralel pêk were, Node.js modelek darvekirina kodê ya asynchronous li ser bingeha destwerdana bûyera ne-astengker û pênase rêvekerên vegerandina bangê bikar tîne. Rêbazên piştgirî ji bo girêdanên piralî epoll, kqueue, / dev/poll, û hilbijartî ne. Ji bo piralîkirina girêdanê, pirtûkxaneya libuv tê bikar anîn, ku ji bo libev li ser pergalên Unix û IOCP li ser Windows-ê pêvekek e. Pirtûkxaneya libeio ji bo afirandina hewzek tîrêjê tê bikar anîn, û c-ares ji bo pêkanîna pirsên DNS-ê di moda ne-astengkirinê de tête yek kirin. Hemî bangên pergalê yên ku dibin sedema astengkirinê di hundurê hewza tîrêjê de têne darve kirin û dûv re, mîna hilgirên sînyalê, encama xebata xwe bi boriyek (boriyek) nenavkirî veguhezînin. Bicîhkirina koda JavaScriptê bi karanîna motora V8 ya ku ji hêla Google ve hatî pêşve xistin ve tê peyda kirin (ji bilî vê, Microsoft guhertoyek Node.js bi motora Chakra-Core ve pêşve dike).

Di bingeha xwe de, Node.js dişibihe Perl AnyEvent, Ruby Event Machine, çarçoveyên Python Twisted, û pêkanîna bûyera Tcl-ê, lê lûleya bûyerê li Node.js ji pêşdebiran veşartî ye û dişibe birêvebirina bûyerê di serîlêdana tevnerê de ku dixebite. di gerokê de. Dema ku serîlêdanan ji bo node.js dinivîsin, hûn hewce ne ku hûn taybetmendiyên bernamesaziya bûyer-rêveberê binirxînin, mînakî, li şûna ku hûn "var result = db.query("hilbijêre..");" digel li benda qedandina kar û dûv re hilberandina encaman, Node.js prensîba darvekirina asynchronous bikar tîne, ango. kod tê guheztin "db.query("hilbijêre..", fonksiyona (encam) {pêvajoya encam});", ku tê de kontrol dê tavilê derbasî koda din bibe, û encama pirsê dê wekî daneyan were hilberandin.

Source: opennet.ru

Add a comment