K dispozícii je platforma JavaScript na strane servera Node.js 19.0

Bol vydaný Node.js 19.0, platforma na spúšťanie sieťových aplikácií v JavaScripte. Node.js 19 je pravidelná vetva podpory s aktualizáciami dostupnými do júna 2023. V najbližších dňoch bude dokončená stabilizácia vetvy Node.js 18, ktorá získa štatút LTS a bude podporovaná do apríla 2025. Údržba predchádzajúcej vetvy LTS Node.js 16.0 potrvá do septembra 2023 a predminulá vetva LTS 14.0 do apríla 2023.

Hlavné vylepšenia:

  • Engine V8 bol aktualizovaný na verziu 10.7, používanú v prehliadači Chromium 107. Medzi zmenami v engine v porovnaní s vetvou Node.js 18 je poznamenaná implementácia tretej verzie API Intl.NumberFormat, ktorá pridáva nové funkcie formatRange (), formatRangeToParts() a selectRange(), zoskupovanie množín, nové možnosti zaokrúhľovania a nastavenia presnosti, možnosť interpretovať reťazce ako desatinné čísla. Zahrnuté závislosti llhttp 8.1.0 a npm 8.19.2 boli tiež aktualizované.
  • Bol navrhnutý experimentálny príkaz "node -watch" s implementáciou režimu sledovania, ktorý zaisťuje reštart procesu, keď sa importovaný súbor zmení (napríklad, ak sa vykoná "node -watch index.js", proces bude automaticky reštartovaný pri zmene index.js).
  • Pre všetky odchádzajúce pripojenia HTTP/HTTPS je povolená podpora mechanizmu Keep-Alive HTTP 1.1, ktorý ponecháva pripojenie na určitý čas otvorené na spracovanie niekoľkých požiadaviek HTTP v rámci toho istého pripojenia. Očakáva sa, že Keep-Alive zlepší priepustnosť a výkon. V predvolenom nastavení je čas otvorenia pripojenia nastavený na 5 sekúnd. Do implementácie HTTP klienta bola pridaná podpora analýzy hlavičky Keep-Alive HTTP v odpovediach servera a do implementácie servera Node.js HTTP servera bolo pridané automatické odpájanie neaktívnych klientov pomocou Keep-Alive.
  • WebCrypto API bolo presunuté do stabilnej kategórie s výnimkou funkcií využívajúcich algoritmy Ed25519, Ed448, X25519 a X448. Na prístup k modulu WebCrypto môžete teraz použiť globalThis.crypto alebo require('node:crypto').webcrypto.
  • Bola odstránená podpora pre sledovacie nástroje DTrace, SystemTap a ETW (Event Tracing for Windows), ktorých údržba sa považovala za nevhodnú z dôvodu zložitosti udržiavania v aktuálnom stave pri absencii riadneho plánu podpory.

Platformu Node.js je možné použiť ako na serverovú údržbu webových aplikácií, tak aj na vytváranie bežných klientskych a serverových sieťových programov. Pre rozšírenie funkcionality aplikácií pre Node.js je pripravená veľká kolekcia modulov, v ktorých nájdete moduly s implementáciou HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serverov a klientov, moduly pre integráciu s rôznymi webovými frameworkami, obslužnými nástrojmi WebSocket a Ajax, konektormi DBMS (MySQL, PostgreSQL, SQLite, MongoDB), nástrojmi na vytváranie šablón, nástrojmi CSS, implementáciami kryptografických algoritmov a autorizačných systémov (OAuth), analyzátormi XML.

Na zabezpečenie spracovania veľkého počtu paralelných požiadaviek používa Node.js asynchrónny model vykonávania kódu založený na neblokujúcom spracovaní udalostí a definícii obsluhy spätného volania. Podporované metódy pre multiplexné pripojenia sú epoll, kqueue, /dev/poll a select. Pre multiplexovanie pripojení sa používa knižnica libuv, ktorá je doplnkom pre libev na systémoch Unix a IOCP na Windows. Knižnica libeio sa používa na vytvorenie oblasti vlákien a c-ares je integrovaný na vykonávanie DNS dotazov v neblokujúcom režime. Všetky systémové volania, ktoré spôsobujú blokovanie, sa vykonávajú vo vnútri oblasti vlákien a potom, ako obslužné programy signálov, prenášajú výsledok svojej práce späť cez nepomenovanú rúrku (pipe). Spustenie kódu JavaScript je zabezpečené pomocou motora V8 vyvinutého spoločnosťou Google (okrem toho Microsoft vyvíja verziu Node.js s motorom Chakra-Core).

Vo svojom jadre je Node.js podobný rámcom Perl AnyEvent, Ruby Event Machine, Python Twisted a implementácii udalostí Tcl, ale slučka udalostí v Node.js je pred vývojárom skrytá a pripomína spracovanie udalostí vo webovej aplikácii, ktorá je spustená. v prehliadači. Pri písaní aplikácií pre node.js musíte vziať do úvahy špecifiká programovania riadeného udalosťami, napríklad namiesto toho, aby ste robili "var result = db.query("select..");" s čakaním na dokončenie práce a následným spracovaním výsledkov využíva Node.js princíp asynchrónneho vykonávania, t.j. kód sa transformuje na "db.query("select..", funkcia (výsledok) {spracovanie výsledku});", v ktorej riadenie okamžite prejde na ďalší kód a výsledok dotazu sa spracuje po príchode údajov.

Zdroj: opennet.ru

Pridať komentár