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

Dostupný uvolnění Node.js 13.0,platformy pro spouštění síťových aplikací v JavaScriptu. Zároveň byla dokončena stabilizace předchozí větve Node.js 12.x, která byla převedena do kategorie dlouhodobých podpůrných vydání, pro které jsou aktualizace vydávány 4 roky. Podpora pro předchozí LTS větev Node.js 10.0 potrvá do dubna 2021 a podpora pro poslední LTS větev 8.0 do ledna 2020.

hlavní vylepšení:

  • Motor V8 aktualizován na verzi 7.8, který využívá nové techniky optimalizace výkonu, zlepšuje destrukturaci objektů, snižuje spotřebu paměti a zkracuje dobu přípravy na spuštění WebAssembly;
  • Ve výchozím nastavení je povolena plná podpora internacionalizace a Unicode založeného na knihovnách ICU (International Components for Unicode), která umožňuje vývojářům psát kód vedlejší pracovat s různými jazyky a lokalitami. Modul full-icu je nyní standardně nainstalován;
  • API stabilizováno Pracovní vlákna, dovolující vytvářet vícevláknové smyčky událostí. Implementace je založena na modulu worker_threads, který umožňuje spouštět kód JavaScript ve více paralelních vláknech. Stabilní podpora pro Workers Threads API byla také zpětně portována do větve LTS Node.js 12.x;
  • Požadavky na platformy byly zvýšeny. Nyní k montáži požadováno alespoň macOS 10.11 (vyžaduje Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Vylepšená podpora pro Python 3. Pokud má systém Python 2 i Python 3, Python 2 se stále používá, ale byla přidána možnost sestavení, když je v systému nainstalován pouze Python 3;
  • Stará implementace analyzátoru HTTP („—http-parser=legacy“) byla odstraněna. Odstraněná nebo zastaralá volání a vlastnosti FSWatcher.prototype.start(), ChildProcess._channel, metoda open() v objektech ReadStream a WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Další vyjít aktualizace 13.0.1, která rychle opravila několik chyb. Konkrétně byl vyřešen problém s npm 6.12.0 zobrazujícím varování o použití nepodporované verze.

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ář