A Node.js 13.0 szerveroldali JavaScript platform kiadása

Elérhető kiadás Node.js 13.0, a JavaScript nyelvű hálózatos alkalmazások végrehajtására szolgáló platform. Egyidejűleg befejeződött a korábbi Node.js 12.x ág stabilizálása, amely átkerült a hosszú távú támogatású kiadások kategóriájába, amelyek frissítései 4 éven át jelennek meg. A korábbi LTS ág, a Node.js 10.0 támogatása 2021 áprilisáig tart, míg a megelőző LTS ág, a 8.0 januárig a 2020-as évben.

Fő fejlesztések:

  • A V8 motor frissítve lett a 7.8verzióra, amelyben új teljesítményoptimalizáló módszerek kerültek bevezetésre, a objektumok destrukturálása javult, csökkent a memóriafogyasztás és lerövidült a WebAssembly végrehajtási előkészítési ideje;
  • Alapértelmezés szerint teljes támogatás biztosított a nemzetközivé tételhez és a Unicode-hoz a ICU (International Components for Unicode) könyvtárak alapján, amelyek lehetővé teszik a fejlesztők számára, hogy olyan kódot írjanak, amely támogatja a különböző nyelvek és lokációk használatát. A full-icu modul mostantól alapértelmezett telepítve van;
  • Stabilizálták az API-t Workers Threads, amely lehetővé teszi több szálú eseménykezelő ciklusok (event loop) létrehozását. A megvalósítás a worker_threads modulon alapul, amely lehetővé teszi JavaScript-kód futtatását több párhuzamos szálon. A Workers Threads API stabil támogatása szintén visszafelé kompatibilissé vált a Node.js 12.x LTS ágba;
  • Fokozottak a platform követelményei. A fordításhoz mostantól szükséges legalább macOS 10.11 (Xcode 10 szükséges), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Javították a Python 3 támogatását. Ha a rendszerben Python 2 és Python 3 is található, akkor továbbra is a Python 2-t használják, de hozzáadták a lehetőséget, hogy csak Python 3 használata esetén is fordítani lehessen;
  • Eltávolították a régi HTTP-parsert („--http-parser=legacy”). Eltávolították vagy elavultként jelölték meg a FSWatcher.prototype.start(), ChildProcess._channel, a ReadStream és WriteStream objektumok open() metódusát, a request.connection, response.connection és module.createRequireFromPath() hívásokat;
  • Ezután megjelent a 13.0.1 frissítés, amelyben azonnal több hibát is kijavítottak. Köztük megoldották az npm 6.12.0 figyelmeztetési problémát a nem támogatott verzió használatával kapcsolatban.

Emlékezzünk, hogy a Node.js platform használható a Web-alapú alkalmazások szerveroldali működtetésére, valamint hagyományos kliens- és szerveroldali hálózati programok létrehozására. A Node.js alkalmazások funkcionalitásának kiterjesztésére egy nagy modulgyűjtemény készült, amely lehetővé teszi HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 szerverek és kliensek megvalósítását, valamint különböző webkeretrendszerekkel való integrációt támogató modulokat, WebSocket és Ajax kezelőket, adatbázis-kapcsolókat (MySQL, PostgreSQL, SQLite, MongoDB), sablonkezelőket, CSS-motorokat, kriptográfiai algoritmusok megvalósítását és hitelesítési rendszereket (OAuth), XML-parszereket.

A párhuzamos kérések nagy számának kezelésére a Node.js aszinkron kódvégrehajtási modellt alkalmaz, amely esemény-alapú, nem blokkoló módban működik, és callback kezelőket használ. A kapcsolatok multiplexelésére olyan módszereket támogat, mint az epoll, kqueue, /dev/poll és select. A multiplexeléshez használt könyvtár libuv, amely a libev Unix rendszereken és IOCP-n Windows alatt. A szálkészség (thread pool) létrehozásához a libeiokönyvtárat használják, a DNS-kérések nem blokkoló végrehajtásához integrálva van c-ares. Minden blokkoló rendszerhívást a szálkészség keretében hajtanak végre, majd, akárcsak a jelzőkezelők, az eredményt egy anonim csövön (pipe) keresztül továbbítják. A JavaScript kód végrehajtását a Google által kifejlesztett motor segítségével biztosítják V8 (továbbá a Microsoft a Chakra-Core motorral fejleszti a Node.js egy változatát).

A Node.js lényegében hasonlít a Perl AnyEvent, Ruby Event Machine, Python Twisted és a megvalósítást Tcl eseménykezelőire, de a Node.js eseménykezelő ciklusa rejtve van a fejlesztő elől, és hasonlít a webalkalmazásokban, böngészőben történő eseménykezeléshez. Node.js alkalmazások írásakor figyelembe kell venni az esemény-alapú programozás sajátosságait, például ahelyett, hogy a "var result = db.query('select..');" kódot használnánk, amely megvárná a végrehajtás befejezését és az eredmények feldolgozását, a Node.js az aszinkron végrehajtási elvet alkalmazza, vagyis a kód átíródik "db.query('select..', function (result) {eredmény feldolgozása});" formára, amelynél a vezérlés azonnal továbbmegy a következő kódra, és az eredmény feldolgozása az adatok megérkezésekor történik.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster