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

Bol vydaný Node.js 18.0, platforma na spúšťanie sieťových aplikácií v JavaScripte. Node.js 18.0 je klasifikovaný ako dlhodobá podporná vetva, ale tento status bude pridelený až v októbri, po stabilizácii. Node.js 18.x bude podporovaný do apríla 2025. Údržba predchádzajúcej vetvy LTS Node.js 16.x potrvá do apríla 2024 a predminulá vetva LTS 14.x do apríla 2023. Vetva 12.x LTS bude ukončená 30. apríla a vetva Node.js 17.x bude ukončená 1. júna.

Hlavné vylepšenia:

  • Motor V8 bol aktualizovaný na verziu 10.1, ktorá sa používa v prehliadači Chromium 101. V porovnaní s vydaním Node.js 17.9.0 je teraz podpora funkcií, ako sú metódy findLast a findLastIndex na nájdenie prvkov vzhľadom na koniec pole a funkciu Intl.supportedValuesOf. Vylepšené rozhranie Intl.Locale API. Zrýchlila sa inicializácia polí tried a súkromných metód.
  • Experimentálne rozhranie fetch() API je predvolene povolené a je určené na načítanie zdrojov cez sieť. Implementácia je založená na kóde z HTTP/1.1 undici klienta a je čo najbližšie k podobnému API poskytovanému v prehliadačoch. To zahŕňa podporu rozhraní FormData, Headers, Request a Response na manipuláciu s hlavičkami HTTP požiadaviek a odpovedí. const res = wait fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = wait res.json(); console.log(data); }
  • Bola pridaná experimentálna implementácia rozhrania Web Streams API, ktorá poskytuje prístup k dátovým tokom prijímaným cez sieť. Rozhranie API umožňuje pridávať vlastné obslužné programy na prácu s údajmi, keď informácie prichádzajú cez sieť, bez čakania na stiahnutie celého súboru. Objekty teraz dostupné v Node.js zahŕňajú ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream a DecompressionStream.
  • Rozhranie Blob API bolo presunuté do stabilnej verzie, čo vám umožňuje zapuzdreť nemenné nespracované údaje na bezpečné použitie v rôznych pracovných vláknach.
  • Rozhranie BroadcastChannel API bolo stabilné, čo vám umožňuje organizovať výmenu správ v asynchrónnom režime vo formáte „jeden odosielateľ – veľa príjemcov“.
  • Pridaný experimentálny modul node:test na vytváranie a spúšťanie testov v JavaScripte, ktoré vracajú výsledky vo formáte TAP (Test Anything Protocol).
  • Poskytuje sa generovanie hotových zostáv pre Red Hat Enterprise Linux (RHEL) 8 a ďalšie distribúcie založené na Glibc 2.28+, vrátane Debian 10 a Ubuntu 20.04, ako aj pre macOS 10.15+. Kvôli problémom so zostavou motora V8 bolo vytváranie 32-bitových zostáv pre Windows dočasne zastavené.
  • Poskytli experimentálnu možnosť na zostavenie spustiteľného súboru Node.js s komponentmi vybratými používateľom inicializovanými pri spustení. Na definovanie počiatočných komponentov bola do konfiguračného zostavovacieho skriptu pridaná možnosť „--node-snapshot-main“, napríklad „./configure —node-snapshot-main=marked.js; názov uzla"

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