Vydanie JavaScript Node.js 16.0 na strane servera

Bol vydaný Node.js 16.0, platforma na spúšťanie sieťových aplikácií v JavaScripte. Node.js 16.0 je klasifikovaný ako dlhodobá podporná vetva, ale tento status bude pridelený až v októbri, po stabilizácii. Node.js 16.0 bude podporovaný do apríla 2023. Údržba predchádzajúcej vetvy LTS Node.js 14.0 potrvá do apríla 2023 a predminulá vetva LTS 12.0 do apríla 2022. Podpora pre vetvu 10.0 LTS bude ukončená o 10 dní.

Hlavné vylepšenia:

  • Motor V8 bol aktualizovaný na verziu 9.0 (Node.js 15 používal vydanie 8.6), čo umožňuje implementáciu funkcií, ako je vlastnosť „indexy“ pre regulárne výrazy (zahŕňa pole so začiatočnými a koncovými pozíciami skupín zhôd) , metóda Atomics v Node.js 16 .waitAsync (asynchrónna verzia Atomics.wait), podpora používania kľúčového slova wait v moduloch najvyššej úrovne. Volania funkcií boli zrýchlené v situáciách, keď počet odovzdaných argumentov nezodpovedá parametrom definovaným vo funkcii.
  • Rozhranie API Timers Promises bolo stabilizované a poskytuje alternatívnu sadu funkcií pre prácu s časovačmi, ktoré vracajú objekty Promise ako výstup, čo eliminuje potrebu použitia util.promisify(). import { setTimeout } z 'časovače/sľuby'; async function run() { wait setTimeout(5000); console.log('Ahoj, Svet!'); } spustiť();
  • Bola pridaná experimentálna implementácia Web Crypto API, ktorá je navrhnutá na vykonávanie základných kryptografických operácií na strane webových aplikácií, ako je manipulácia s kryptografickými hashmi, generovanie a overovanie digitálnych podpisov, kódovanie a dekódovanie údajov pomocou rôznych metód šifrovania a generovanie kryptograficky bezpečných náhodné čísla. Rozhranie API tiež poskytuje funkcie na generovanie a správu kľúčov.
  • N-API (API pre vývoj doplnkov) bolo aktualizované na verziu 8.
  • Prechod na nové vydanie správcu balíkov NPM 7.10 bol vykonaný.
  • Stabilizovala implementáciu triedy AbortController, ktorá je založená na rozhraní AbortController Web API a umožňuje zrušenie signálov vo vybraných rozhraniach API na báze Promise.
  • Podpora pre tretiu verziu formátu Source Map, slúžiacu na porovnávanie vygenerovaných, spracovaných alebo zabalených modulov s pôvodným zdrojovým kódom, bola stabilizovaná.
  • Kvôli kompatibilite so staršími webovými rozhraniami API boli pridané metódy buffer.atob(data) a buffer.btoa(data).
  • Začala sa tvorba zostáv pre nové zariadenia Apple vybavené čipom M1 ARM.
  • Na platforme Linux boli požiadavky na verziu kompilátora zvýšené na GCC 8.3.

Pripomeňme, že platformu Node.js možno 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.

Okrem toho možno poznamenať, že spoločnosť Deno, ktorú založil tvorca Node.js na vývoj platformy Deno novej generácie, získala investície vo výške 4.9 milióna dolárov. Svojím účelom je Deno podobný Node.js, no snaží sa eliminovať koncepčné chyby v architektúre Node.js a poskytnúť používateľom bezpečnejšie prostredie. Je potrebné poznamenať, že obchodné riešenia spoločnosti Deno budú postavené na úplne otvorených produktoch a model Open Core so samostatnou platenou funkcionalitou je pre platformu Deno vnímaný ako neprijateľný.

Zdroj: opennet.ru

Pridať komentár