Vydání JavaScriptu Node.js 16.0 na straně serveru

Byl vydán Node.js 16.0, platforma pro spouštění síťových aplikací v JavaScriptu. Node.js 16.0 je klasifikován jako dlouhodobá podpůrná větev, ale tento status bude přidělen až v říjnu, po stabilizaci. Node.js 16.0 bude podporován do dubna 2023. Údržba předchozí LTS větve Node.js 14.0 potrvá do dubna 2023 a předloni LTS větve 12.0 do dubna 2022. Podpora pro větev 10.0 LTS bude za 10 dní ukončena.

Hlavní vylepšení:

  • Engine V8 byl aktualizován na verzi 9.0 (Node.js 15 používal verzi 8.6), která umožňuje implementaci funkcí, jako je vlastnost „indexy“ pro regulární výrazy (zahrnuje pole s počáteční a koncovou pozicí skupin shod) , metoda Atomics v Node.js 16 .waitAsync (asynchronní verze Atomics.wait), podpora pro použití klíčového slova wait v modulech nejvyšší úrovně. Volání funkcí bylo zrychleno v situacích, kdy počet předávaných argumentů neodpovídá parametrům definovaným ve funkci.
  • Rozhraní API Timers Promises bylo stabilizováno a poskytuje alternativní sadu funkcí pro práci s časovači, které vracejí objekty Promise jako výstup, což eliminuje potřebu použití util.promisify(). import { setTimeout } z 'časovače/přísliby'; async function run() { wait setTimeout(5000); console.log('Ahoj, světe!'); } spustit();
  • Byla přidána experimentální implementace Web Crypto API, která je navržena pro provádění základních kryptografických operací na straně webových aplikací, jako je manipulace s kryptografickými hashemi, generování a ověřování digitálních podpisů, kódování a dekódování dat pomocí různých šifrovacích metod a generování kryptograficky bezpečných náhodná čísla. API také poskytuje funkce pro generování a správu klíčů.
  • N-API (API pro vývoj doplňků) bylo aktualizováno na verzi 8.
  • Byl proveden přechod na nové vydání správce balíčků NPM 7.10.
  • Stabilizovala implementaci třídy AbortController, která je založena na webovém rozhraní API AbortController a umožňuje rušení signálů ve vybraných rozhraních API na bázi Promise.
  • Podpora pro třetí verzi formátu Source Map, sloužící k porovnání generovaných, zpracovaných nebo zabalených modulů s původním zdrojovým kódem, byla stabilizována.
  • Pro kompatibilitu se staršími webovými rozhraními API byly přidány metody buffer.atob(data) a buffer.btoa(data).
  • Začala tvorba sestav pro nová zařízení Apple vybavená čipem M1 ARM.
  • Na platformě Linux byly požadavky na verzi kompilátoru zvýšeny na GCC 8.3.

Připomeňme, že platformu Node.js lze použít jak pro serverovou údržbu webových aplikací, tak pro vytváření běžných klientských a serverových síťových programů. Pro rozšíření funkcionality aplikací pro Node.js je připravena velká kolekce modulů, ve kterých naleznete moduly s implementací HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servery a klienty, moduly pro integraci s různými webovými frameworky, obslužnými nástroji WebSocket a Ajax, DBMS konektory (MySQL, PostgreSQL, SQLite, MongoDB), šablonovacími engine, CSS engine, implementacemi kryptografických algoritmů a autorizačních systémů (OAuth), XML parsery.

Aby bylo zajištěno zpracování velkého počtu paralelních požadavků, používá Node.js asynchronní model spouštění kódu založený na neblokujícím zpracování událostí a definici obslužných rutin zpětného volání. Podporované metody pro multiplexní připojení jsou epoll, kqueue, /dev/poll a select. Pro multiplexování připojení se používá knihovna libuv, což je doplněk pro libev na systémech Unix a IOCP na Windows. Knihovna libeio se používá k vytvoření fondu vláken a c-ares je integrován pro provádění DNS dotazů v neblokujícím režimu. Všechna systémová volání, která způsobují blokování, jsou prováděna uvnitř fondu vláken a poté, jako obslužné rutiny signálů, přenášejí výsledek své práce zpět přes nepojmenovanou rouru (rouru). Spouštění kódu JavaScript je zajištěno pomocí enginu V8 vyvinutého společností Google (Microsoft navíc vyvíjí verzi Node.js s enginem Chakra-Core).

Ve svém jádru je Node.js podobný Perl AnyEvent, Ruby Event Machine, Python Twisted frameworkům a implementaci událostí Tcl, ale smyčka událostí v Node.js je před vývojářem skrytá a připomíná zpracování událostí ve spuštěné webové aplikaci. v prohlížeči. Při psaní aplikací pro node.js musíte vzít v úvahu specifika programování řízeného událostmi, například místo toho, abyste dělali "var result = db.query("select..");" s čekáním na dokončení práce a následným zpracováním výsledků využívá Node.js princip asynchronního provádění, tzn. kód se transformuje na "db.query("select..", funkce (výsledek) {zpracování výsledku});", ve kterém řízení okamžitě přejde na další kód a výsledek dotazu bude zpracován, jakmile data dorazí.

Navíc lze poznamenat, že společnost Deno, kterou založil tvůrce Node.js za účelem vývoje platformy Deno nové generace, získala investice ve výši 4.9 milionu dolarů. Svým účelem je Deno podobné Node.js, ale snaží se eliminovat koncepční chyby vzniklé v architektuře Node.js a poskytnout uživatelům bezpečnější prostředí. Je třeba poznamenat, že obchodní řešení společnosti Deno budou postavena na zcela otevřených produktech a model Open Core se samostatnou placenou funkcí je pro platformu Deno vnímán jako nepřijatelný.

Zdroj: opennet.ru

Přidat komentář