A Node.js 14.0 szerveroldali JavaScript platform kiadása

Megvalósult kiadás Node.js 14.0, 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 folytatódik 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ő fejlesztések:

  • Stabilizálták a lehetőséget diagnosztikai jelentések generálására, 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 Async Local Storage , 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 modulok ECMAScript 6 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 8.1 (1, 2, 3), 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 WASI (WebAssembly System Interface), 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 minimum verziók fordítók és platformok számára: macOS 10.13 (High Sierra), GCC 6, Windows 7/2008R2 vagy újabb.

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