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

odehrál se uvolnění Node.js 14.0, platformy pro spouštění síťových aplikací v JavaScriptu. Node.js 14.0 patří mezi dlouhé podpůrné větve, ale tento status bude přidělen až v říjnu, po stabilizaci. Podpora pro Node.js 14.0 bude být proveden do dubna 2023. Údržba předchozí větve Node.js 12.0 LTS potrvá do dubna 2022 a předchozí větve 10.0 LTS do dubna 2021. Podpora pro větev 13.x staging skončí v červnu tohoto roku.

hlavní vylepšení:

  • Schopnost generovat za chodu nebo při výskytu určitých událostí byla stabilizována diagnostické zprávy, které odrážejí události, které pomáhají diagnostikovat problémy, jako jsou pády, pokles výkonu, úniky paměti, vysoké zatížení procesoru, neočekávaný chybový výstup atd.
  • Přidána podpora experimentálního rozhraní API Asynchronní místní úložiště s implementací třídy AsyncLocalStorage, kterou lze použít k vytvoření asynchronního stavu s obslužnými rutinami na základě zpětných volání a příslibů. AsyncLocalStorage vám umožňuje ukládat data během zpracovávání webového požadavku, podobně jako Thread-Local Storage v jiných jazycích.
  • Odstraněno upozornění na experimentální funkce při spouštění moduly ECMAScript 6 připojené a exportované pomocí příkazů importu a exportu. Samotná implementace ESM modulů je přitom stále experimentální.
  • Motor V8 aktualizován na verzi 8.1 (1, 2, 3), který zavádí nové optimalizace výkonu a přidává nové funkce, jako je nový operátor logického spojení "??" (vrátí pravý operand, pokud je levý operand NULL nebo nedefinovaný, a naopak), "?." pro jednorázovou kontrolu celého řetězce vlastností nebo volání (například "db?.user?.name?.length" bez předběžných kontrol), metoda Intl.DisplayName pro získání lokalizovaných názvů atp.
  • Rozhraní Streams API bylo přepracováno, aby zlepšilo konzistenci rozhraní API Streams a řešilo rozdíly v chování základních částí Node.js. Například chování http.OutgoingMessage je podobné stream.Writable a net.Socket je podobné stream.Duplex. Volba autoDestroy je standardně nastavena na "true", což znamená, že "_destroy" bude voláno po dokončení.
  • Přidána podpora experimentálního rozhraní API BYL JSEM (Systémové rozhraní WebAssembly), která poskytuje programovací rozhraní pro přímou interakci s operačním systémem (POSIX API pro práci se soubory, sokety atd.).
  • Zvýšené požadavky na minimální verze kompilátory a platformy: macOS 10.13 (High Sierra), GCC 6, Windows novější než 7/2008R2.

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í funkčnosti aplikací pro Node.js, velký kolekce modulů, ve kterém naleznete moduly s implementací HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servery a klienty, moduly pro integraci s různými webovými frameworky, WebSocket a Ajax handlery, konektory pro DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), šablonovací enginy, CSS enginy, implementace 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 provádě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. Knihovna se používá pro multiplexní připojení libuv, což je nadstavba nad Libev na systémech Unix a přes IOCP na Windows. Knihovna se používá k vytvoření fondu vláken libeio, provádět dotazy DNS v integrovaném neblokujícím režimu stará se. Všechna systémová volání, která způsobují blokování, jsou prováděna uvnitř fondu vláken a poté, jako obslužné programy signálů, přenášejí výsledek své práce zpět přes nepojmenovanou rouru (rouru). Spuštění kódu JavaScript je zajištěno pomocí nástroje vyvinutého společností Google V8 (Microsoft navíc vyvíjí variantu Node.js s enginem Chakra-Core).

Node.js je ve svém jádru podobný frameworkům. Perl AnyEvent, Ruby Event Machine, Python Twisted и implementace události v 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 webové aplikaci spuštěné v prohlížeči. Při psaní aplikací pro node.js je třeba vzít v úvahu specifika programování řízeného událostmi, například namísto provádění "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 je transformován 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 dorazí data. .

Zdroj: opennet.ru

Přidat komentář