A kiszolgálóoldali JavaScript platform Node.js 13.0 kiadása

Elérhető kiadás Node.js 13.0,platformok hálózati alkalmazások futtatásához JavaScriptben. Ezzel egy időben a Node.js 12.x korábbi ágának stabilizálása is befejeződött, amely átkerült a hosszú távú támogatási kiadások kategóriájába, amelyek frissítései 4 évre szólnak. A Node.js 10.0 korábbi LTS-ágának támogatása 2021 áprilisáig, az utolsó LTS 8.0-s ág támogatása pedig 2020 januárjáig tart.

A főbb fejlesztések:

  • V8-as motor verzióra frissítve 7.8, amely új teljesítményoptimalizálási technikákat használ, javítja az objektumok strukturálását, csökkenti a memóriafelhasználást és csökkenti a WebAssembly végrehajtásához szükséges felkészülési időt;
  • A nemzetköziesítés és a könyvtáralapú Unicode teljes támogatása alapértelmezés szerint engedélyezve van ICU (International Components for Unicode), amely lehetővé teszi a fejlesztők számára kód írását támogató különböző nyelvekkel és területekkel dolgozni. A teljes icu modul alapértelmezés szerint telepítve van;
  • API stabilizálva Dolgozók szálak, lehetővé téve többszálú eseményhurkok létrehozása. 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álban. A Workers Threads API stabil támogatása a Node.js 12.x LTS ágába is vissza lett portolva;
  • A platformokkal szemben támasztott követelmények megemelkedtek. Most össze kell szerelni kötelező 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;
  • A Python 3 továbbfejlesztett támogatása. Ha a rendszer Python 2-vel és Python 3-mal is rendelkezik, a Python 2 továbbra is használatban van, de hozzáadásra került az építési lehetőség, ha csak a Python 3 van telepítve a rendszerre;
  • A HTTP-elemző régi megvalósítása („—http-parser=legacy”) eltávolítva. Eltávolított vagy elavult hívások és tulajdonságok FSWatcher.prototype.start(), ChildProcess._channel, open() metódus ReadStream és WriteStream objektumokban, request.connection, response.connection, module.createRequireFromPath();
  • után kijött 13.0.1 frissítés, amely gyorsan javított számos hibát. Konkrétan az npm 6.12.0 nem támogatott verzió használatára vonatkozó figyelmeztetést megjelenítő problémája megoldódott.

Emlékezzünk vissza, hogy a Node.js platform webes alkalmazások szerveroldali támogatására és hétköznapi kliens és szerver hálózati programok létrehozására egyaránt használható. A Node.js alkalmazások funkcionalitásának bővítése érdekében számos modulok gyűjteménye, amelyben megtalálhatók a szerverek és kliensek HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 implementációjával rendelkező modulok, különféle webes keretrendszerekkel való integrációs modulok, WebSocket és Ajax kezelők, DBMS-hez csatlakozók (MySQL, PostgreSQL, SQLite) , MongoDB ), sablonmotorok, CSS motorok, kriptográfiai algoritmusok és engedélyezési rendszerek (OAuth) megvalósításai, XML-elemzők.

Nagyszámú párhuzamos kérés kezelésére a Node.js aszinkron kódvégrehajtási modellt használ, amely nem blokkoló eseményfeldolgozáson és visszahíváskezelők meghatározásán alapul. A kapcsolatok multiplexelésének támogatott módszerei közé tartozik az epoll, a kqueue, a /dev/poll és a select. A könyvtár multiplex kapcsolatokra szolgál libuv, ami egy felépítmény át libev Unix rendszereken és IOCP-n keresztül Windows rendszeren. A szálkészlet létrehozására könyvtárat használnak libeio, a DNS-lekérdezések nem blokkoló módban történő végrehajtásához integrálva van c-arok. Az összes blokkolást okozó rendszerhívás a szálkészleten belül kerül végrehajtásra, majd a jelkezelőkhöz hasonlóan egy névtelen csövön keresztül továbbítja munkájuk eredményét. A JavaScript kód végrehajtását a Google által fejlesztett motor biztosítja V8 (Emellett a Microsoft a Node.js egy verzióját is fejleszti a Chakra-Core motorral).

Lényegében a Node.js hasonló a keretrendszerekhez Perl AnyEvent, Ruby Event Machine, Python Twisted и végrehajtás események a Tcl-ben, de a Node.js eseményhurok rejtve van a fejlesztő elől, és egy böngészőben futó webalkalmazás eseménykezeléséhez hasonlít. A node.js-hoz való alkalmazások írásakor figyelembe kell venni például az eseményvezérelt programozás sajátosságait a „var result = db.query(“select..”);” helyett. a munka befejezésének megvárásával és az eredmények későbbi feldolgozásával a Node.js az aszinkron végrehajtás elvét használja, azaz. a kód átalakul „db.query(“select..”, függvény (eredmény) {eredményfeldolgozás});”, amelyben a vezérlés azonnal átkerül a további kódra, és a lekérdezés eredménye az adatok beérkezésekor kerül feldolgozásra. .

Forrás: opennet.ru

Hozzászólás