Vydanie JavaScript Node.js 14.0 na strane servera

uskutočnilo sa uvoľnenie Node.js 14.0,platformy na spúšťanie sieťových aplikácií v JavaScripte. Node.js 14.0 je dlhodobá podporná vetva, ale tento stav bude pridelený až v októbri, po stabilizácii. Node.js 14.0 bude podporovaný vykonať do apríla 2023. Údržba predchádzajúcej vetvy LTS Node.js 12.0 potrvá do apríla 2022 a predminulá vetva LTS 10.0 do apríla 2021. Podpora pre vetvu 13.x staging skončí v júni tohto roku.

Hlavné vylepšenia:

  • Schopnosť generovať za chodu alebo pri výskyte určitých udalostí bola stabilizovaná diagnostické správy, ktoré zobrazujú udalosti, ktoré pomáhajú diagnostikovať problémy, ako sú zlyhania, zníženie výkonu, úniky pamäte, veľké zaťaženie procesora, neočakávaný chybový výstup atď.
  • Pridaná podpora experimentálneho rozhrania API Asynchrónne miestne úložisko s implementáciou triedy AsyncLocalStorage, ktorú možno použiť na vytvorenie asynchrónneho stavu s obslužnými programami na základe volaní a prísľubov spätného volania. AsyncLocalStorage vám umožňuje ukladať údaje počas spracovania webovej požiadavky, čo pripomína miestne úložisko vlákien v iných jazykoch.
  • Odstránená varovná správa o experimentálnej funkcii pri načítaní modulov ECMAScript 6 pripojené a exportované pomocou výpisov importu a exportu. Zároveň samotná implementácia modulov ESM zostáva experimentálna.
  • Motor V8 aktualizovaný na verziu 8.1 (1, 2, 3), ktorý zahŕňa nové optimalizácie výkonu a funkcie, ako je nový operátor logického zreťazenia "??" (vráti pravý operand, ak je ľavý operand NULL alebo nedefinovaný, a naopak), operátor "?" na jednorazovú kontrolu celého reťazca vlastností alebo volaní (napríklad „db?.user?.name?.length“ bez predbežných kontrol), metóda Intl.DisplayName na získanie lokalizovaných názvov atď.
  • Bola vykonaná revízia Streams API zameraná na zlepšenie konzistencie Streams API a odstránenie rozdielov v správaní základných častí Node.js. Napríklad správanie http.OutgoingMessage je blízke stream.Writable a net.Socket je podobné stream.Duplex. Voľba autoDestroy je štandardne nastavená na "true", čo znamená, že po dokončení zavolá "_destroy".
  • Pridaná podpora experimentálneho rozhrania API BOL SOM (Rozhranie systému WebAssembly), poskytujúce softvérové ​​rozhrania pre priamu interakciu s operačným systémom (POSIX API pre prácu so súbormi, soketmi atď.).
  • Zvýšené požiadavky na minimálne verzie kompilátory a platformy: macOS 10.13 (High Sierra), GCC 6, Windows novší 7/2008 R2.

Pripomeňme, že platformu Node.js možno použiť ako na serverovú podporu webových aplikácií, tak aj na vytváranie bežných klientskych a serverových sieťových programov. Na rozšírenie funkcionality aplikácií pre Node.js veľké množstvo kolekcia modulov, v ktorej nájdete moduly s implementáciou serverov a klientov HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduly pre integráciu s rôznymi webovými frameworkami, WebSocket a Ajax handlery, konektory pre DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), šablónové enginy, CSS enginy, implementácie kryptografických algoritmov a autorizačných systémov (OAuth), XML parsery.

Na spracovanie 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 definovaní obsluhy spätného volania. Podporované metódy pre multiplexné pripojenia zahŕňajú epoll, kqueue, /dev/poll a select. Knižnica slúži na multiplexovanie spojení libuv, ktorá je nadstavbou nad libev na systémoch Unix a cez IOCP na Windows. Na vytvorenie oblasti vlákien sa používa knižnica libeio, na vykonávanie DNS dotazov v neblokovanom režime je integrovaný c-ares. Všetky systémové volania, ktoré spôsobujú blokovanie, sú vykonávané v rámci oblasti vlákien a potom, podobne ako obslužné programy signálov, odovzdávajú výsledok svojej práce späť cez nepomenovanú rúrku. Spustenie kódu JavaScript je zabezpečené pomocou nástroja vyvinutého spoločnosťou Google V8 (Microsoft navyše vyvíja verziu Node.js s jadrom Chakra-Core).

Node.js je vo svojej podstate podobný frameworkom Perl AnyEvent, Ruby Event Machine, Python Twisted и implementáciu udalosti v Tcl, ale slučka udalostí v Node.js je pred vývojárom skrytá a pripomína spracovanie udalostí vo webovej aplikácii spustenej v prehliadači. Pri písaní aplikácií pre node.js je potrebné vziať do úvahy špecifiká programovania riadeného udalosťami, napríklad namiesto vykonania „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 pretransformuje na „db.query(“select..“, funkcia (výsledok) {spracovanie výsledku});“, v ktorej riadenie okamžite prejde na ďalší kód a výsledok dopytu sa spracuje po príchode údajov. .

Zdroj: opennet.ru

Pridať komentár