K dispozici je JavaScriptová platforma na straně serveru Node.js 18.0

Byl vydán Node.js 18.0, platforma pro spouštění síťových aplikací v JavaScriptu. Node.js 18.0 je klasifikován jako dlouhodobá podpůrná větev, ale tento status bude přidělen až v říjnu, po stabilizaci. Node.js 18.x bude podporován do dubna 2025. Údržba předchozí LTS větve Node.js 16.x potrvá do dubna 2024 a předloni LTS větve 14.x do dubna 2023. Větev 12.x LTS bude ukončena 30. dubna a větev Node.js 17.x bude ukončena 1. června.

Hlavní vylepšení:

  • Motor V8 byl aktualizován na verzi 10.1, která se používá v Chromiu 101. Ve srovnání s verzí Node.js 17.9.0 je nyní podporována funkce, jako jsou metody findLast a findLastIndex pro hledání prvků vzhledem ke konci pole a funkce Intl.supportedValuesOf. Vylepšené rozhraní Intl.Locale API. Inicializace polí tříd a soukromých metod byla urychlena.
  • Experimentální rozhraní fetch() API je ve výchozím nastavení povoleno a je navrženo pro načítání zdrojů přes síť. Implementace je založena na kódu z HTTP/1.1 undici klienta a je co nejblíže podobnému API poskytovanému v prohlížečích. To zahrnuje podporu rozhraní FormData, Headers, Request a Response pro manipulaci s HTTP hlavičkami požadavků a odpovědí. const res = wait fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = wait res.json(); console.log(data); }
  • Byla přidána experimentální implementace rozhraní Web Streams API, která poskytuje přístup k datovým tokům přijímaným přes síť. Rozhraní API umožňuje přidávat vlastní obslužné nástroje pro práci s daty, když informace přicházejí přes síť, bez čekání na stažení celého souboru. Mezi objekty nyní dostupné v Node.js patří ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream a DecompressionStream.
  • Rozhraní Blob API bylo přesunuto do stabilní verze, což vám umožňuje zapouzdřit neměnná nezpracovaná data pro bezpečné použití v různých pracovních vláknech.
  • Rozhraní BroadcastChannel API bylo stabilní a umožňuje vám organizovat výměnu zpráv v asynchronním režimu ve formátu „jeden odesílatel – mnoho příjemců“.
  • Přidán experimentální modul node:test pro vytváření a spouštění testů v JavaScriptu, které vracejí výsledky ve formátu TAP (Test Anything Protocol).
  • K dispozici je generování hotových sestav pro Red Hat Enterprise Linux (RHEL) 8 a další distribuce založené na Glibc 2.28+, včetně Debian 10 a Ubuntu 20.04, a také pro macOS 10.15+. Kvůli problémům se sestavením enginu V8 bylo dočasně zastaveno vytváření 32bitových sestavení pro Windows.
  • Poskytuje experimentální možnost sestavení spustitelného souboru Node.js s uživatelsky vybranými komponentami inicializovanými při spuštění. Pro definování počátečních komponent byla do konfiguračního sestavení skriptu přidána možnost „--node-snapshot-main“, například „./configure —node-snapshot-main=marked.js; název uzel"

Platformu Node.js lze použít jak pro serverovou údržbu webových aplikací, tak pro tvorbu běžných klientských a serverových síťových programů. Pro rozšíření funkčnosti 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 enginy, CSS motory, 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í.

Zdroj: opennet.ru

Přidat komentář