kiadás , webalkalmazások futtatására szolgáló platform JavaScript nyelven. A Node.js 14.0 a hosszú távú támogatású ágak közé tartozik, de ez a státusz csak októberben fog megkapni, a stabilizálás után. A Node.js 14.0 támogatása 2023 áprilisáig. A korábbi LTS ág, a Node.js 12.0 támogatása 2022 áprilisáig, a még korábbi LTS ág 10.0 pedig 2021 áprilisáig fog tartani. A 13.x közbenső ág támogatása az idén júniusban véget ér.
Fő :
- Stabilizálták a lehetőséget diagnosztikai jelentések , amelyek azokat az eseményeket tükrözik, amelyek segítik az olyan problémák diagnosztizálását, mint a crash-ek, teljesítménycsökkenés, memóriaelfolyás, magas CPU terhelés, váratlan hibaüzenetek stb.
- Hozzáadták a kísérleti támogatást az API-hoz , amely az AsyncLocalStorage osztály megvalósítását tartalmazza, és amely használható aszinkron állapot létrehozására callback-hívások és promise-ok alapú feldolgozókkal. Az AsyncLocalStorage lehetővé teszi az adatok tárolását a webkérés feldolgozása során, hasonlóan a külön szálakra lokalizált tárolókhoz (Thread-Local Storage) más nyelvekben.
- Eltávolították a kísérleti funkcionalitásra vonatkozó figyelmeztetést a betöltéskor import és export kifejezésekkel történő csatolására és exportálására. A ESM modulok megvalósítása jelenleg még mindig kísérleti.
- A V8 motor frissítve lett a (, , ), amely új teljesítményoptimalizálásokat tartalmaz, valamint számos újdonságot, például az új ?? logikai operátort (a jobb operandust adja vissza, ha a bal operandus értéke NULL vagy undefined, és fordítva), a ?. operátort a tulajdonságok vagy hívások láncolatának egyszeri ellenőrzésére (például db?.user?.name?.length előzetes ellenőrzések nélkül), az Intl.DisplayName metódust a lokalizált nevek megszerzésére stb.
- Átvizsgálták az API Streams-t az API felületek konzisztenciájának javítása és a Node.js alapvető részeiben lévő viselkedésbeli eltérések megszüntetése érdekében. Például a http.OutgoingMessage viselkedése közel került a stream.Writable-hoz, míg a net.Socket a stream.Duplex-hoz. Az autoDestroy opció alapértelmezés szerint 'true' értékre van állítva, ami azt jelenti, hogy a '_destroy' hívása megtörténik a befejezés után.
- Hozzáadták a kísérleti támogatást az API-hoz (), amely programozási interfészeket biztosít a közvetlen interakcióhoz az operációs rendszerrel (POSIX API fájlokkal, socketekkel stb. való munkához).
- Megnövekedtek az fordítók és platformok számára: macOS 10.13 (High Sierra), GCC 6, .
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 , 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 , amely a Unix rendszereken és IOCP-n Windows alatt. A szálkészség (thread pool) létrehozásához a könyvtárat használják, a DNS-kérések nem blokkoló végrehajtásához integrálva van . 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 (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 , , és 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
