K dispozícii je serverová JavaScriptová platforma Node.js 18.0

Bol spustený Node.js 18.0, platforma na vykonávanie sieťových aplikácií v JavaScripte. Node.js 18.0 patrí do vetiev s dlhodobou podporou, avšak tento status bude priradený až v októbri po stabilizačnej fáze. Podpora Node.js 18.x bude zabezpečená do apríla 2025. Podpora bývalej LTS vetvy Node.js 16.x potrvá do apríla 2024, a predchádzajúcej LTS vetvy 14.x do apríla 2023. Podpora LTS vetvy 12.x sa skončí 30. apríla, zatiaľ čo podpora pre prechodnú vetvu Node.js 17.x bude ukončená 1. júna.

Hlavné vylepšenia:

  • Motor V8 bol aktualizovaný na verziu 10.1, použitú v Chromiu 101. V porovnaní s vydaním Node.js 17.9.0 bola pridaná podpora funkcií ako findLast a findLastIndex pre vyhľadávanie prvkov od konca poľa a funkcie Intl.supportedValuesOf. API Intl.Locale bolo vylepšené. Rýchlejšia je inicializácia polí tried a súkromných metód.
  • Experimentálny API fetch() je zapnutý predvolene, určený na sťahovanie zdrojov z internetu. Implementácia je založená na kóde z HTTP/1.1 klienta undici a maximálne sa približuje k podobnému API poskytnutému v prehliadačoch. Zabezpečená je podpora rozhraní FormData, Headers, Request a Response na manipuláciu s HTTP hlavičkami požiadaviek a odpovedí. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
  • Pridaná experimentálna implementácia API Web Streams, ktorá poskytuje prístup k prúdom dát prijatým cez sieť. API umožňuje pridať vlastné spracovatele na prácu s dátami, zatiaľ čo prebieha prenos informácií po sieti, bez čakania na načítanie celého súboru. V Node.js sú teraz dostupné objekty ako ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream a DecompressionStream.
  • Medzi stabilné API bol zaradený Blob, ktorý umožňuje zapuzdrenie nemenných surových dát na bezpečné použitie v rôznych pracovných tokoch.
  • Medzi stabilné API bol zaradený BroadcastChannel, ktorý umožňuje organizovať výmenu správ v asynchrónnom režime v formáte „jeden odosielateľ – mnohí prijímatelia“.
  • Pridaný experimentálny modul node:test na tvorbu a spúšťanie testov v JavaScripte, ktoré vracajú výsledok vo formáte TAP (Test Anything Protocol).
  • Zabezpečené vznik pripravený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 zostavením motora V8 bolo dočasne pozastavené vytváranie 32-bitových zostáv pre Windows.
  • Poskytla sa experimentálna možnosť zostavenia spustiteľného súboru Node.js s vybranými používateľskými komponentmi, ktoré sa inicializujú pri spustení. Na určenie štartovacích komponentov bola do zostavovacieho skriptu configure pridaná možnosť „—node-snapshot-main“, napríklad „./configure —node-snapshot-main=marked.js; name node“

Platforma Node.js môže byť použitá na serverovú podporu webových aplikácií, ako aj na vytváranie klasických klientských a serverových sieťových programov. Pre rozšírenie funkčnosti aplikácií pre Node.js bola pripravená veľká kolekcia modulov, v ktorej nájdete moduly s realizáciou. serverov a klientov HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduly na integráciu s rôznymi webovými rámcami, spracovateľov WebSocket a Ajax, konektorov k DBMS (MySQL, PostgreSQL, SQLite, MongoDB), šablónovačov, CSS enginov, implementácií kryptografických algoritmov a systémov autorizácie (OAuth), XML parserov.

Na zabezpečenie spracovania veľkého počtu paralelných dopytov využíva Node.js asynchrónny model spúšťania kódu, založený na spracovaní udalostí v neblokujúcom režime a určovaní callback spracovateľov. Ako metódy multiplexovania pripojení podporujú také metódy, ako sú epoll, kqueue, /dev/poll a select. Na multiplexovanie pripojení sa používa knižnica libuv, ktorá je nadstavbou nad libev na systémoch Unix a nad IOCP na Windows. Na vytvorenie poolu vlákien (thread pool) je zapojená knižnica libeio, na vykonávanie DNS dopytov v neblokujúcom režime je integrovaný c-ares. Všetky systémové volania, ktoré spôsobujú blokovanie, sa vykonávajú vnútri poolu vlákien a potom, rovnako ako spracovatelia signálov, prenášajú výsledok svojej práce späť cez anonymný kanál (pipe). Vykonávanie JavaScript kódu je zabezpečené zapojením vyvinutého engine V8 spoločnosťou Google (ďalej Microsoft vyvíja variant Node.js s engine Chakra-Core).

V podstate je Node.js podobný rámcom Perl AnyEvent, Ruby Event Machine, Python Twisted a realizácii udalostí v Tcl, ale cyklus spracovania udalostí (event loop) v Node.js je skrytý pred vývojárom a pripomína spracovanie udalostí vo webovej aplikácii, ktorá beží v prehliadači. Pri písaní aplikácií pre Node.js je potrebné zohľadniť špecifiku udalostne orientovaného programovania, napríklad, namiesto vykonávania „var result = db.query(„select..“);“ s očakávaním dokončenia práce a následným spracovaním výsledkov, v Node.js sa používa princíp asynchrónneho vykonávania, t.j. kód sa transformuje na „db.query(„select..“, function (result) {spracovanie výsledku});“, pri ktorom sa riadenie okamžite presunie na ďalší kód a výsledok dopytu bude spracovaný, akonáhle sa údaje dostanú.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster