Elérhető a szerveroldali JavaScript platform Node.js 21.0

Megjelent a Node.js 21.0, a JavaScript nyelven készült hálózati alkalmazások futtatására szolgáló platform. A Node.js 21.0 ág támogatása 6 hónapon át fog tartani. A következő napokban befejeződik a Node.js 20 ág stabilizálása, amely LTS státuszt kap, és 2026 áprilisáig lesz fenntartva. A korábbi LTS ág, a Node.js 18.0 támogatása 2025 szeptemberéig tart, míg a Node.js 16.0 ág ápolása 2024 áprilisáig folytatódik.

Fő fejlesztések:

  • Bejelentették a Fetch API stabil változatát, amely az erőforrások hálózaton keresztüli letöltésére szolgál, és megkönnyíti az univerzális JavaScript kód írását, amely szerver- és kliensoldalon is működhet. A megvalósítás az undici HTTP/1.1 kliens kódján alapul, és maximálisan hasonlít a böngészők által biztosított hasonló API-ra. Az API tartalmazza a fetch() metódust és a Headers, Request és Response objektumokat, amelyek az HTTP-fejléceket, a kérdéseket és a válaszokat képviselik. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
  • Stabilizálták a WebStreams API támogatását, amely hozzáférést biztosít a hálózaton keresztül kapott adatfolyamokhoz. Az API lehetővé teszi saját feldolgozóik hozzáadását, amelyek az adatok beérkezésével dolgoznak, anélkül, hogy megvárnák az egész fájl letöltését. A Node.js-ben elérhetők olyan objektumok, mint a ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream és DecompressionStream.
  • Hozzáadták a WebSocket kliens kísérleti megvalósítását, amely kompatibilis a böngészőkkel.. A WebSocket támogatásának engedélyezéséhez a „—experimental-websocket” zászlót kell használni.
  • Hozzáadták az ESM (ECMAScript Modules, a böngészők moduljaiban alkalmazott) JavaScript modulok alapértelmezett kísérleti módját a CommonJS (Node.js-re specifikus) helyett. A változtatás nem érinti azokat a modulokat, amelyek formátuma kifejezetten meg van határozva a package.json fájl „type” mezőjén keresztül, a „—input-type” zászlóval vagy a fájl kiterjesztéséből nyilvánvaló (az ESM esetén .mjs, a CommonJS esetén .cjs). Eközben azok a modulok, amelyeket kifejezetten nem határoztak meg CommonJS-ként (például „.js” kiterjesztéssel rendelkeznek), új mód aktiválásakor ESM modulokként fognak viselkedni. Az új modulbeállítások aktiválásához a „—experimental-default-type” zászlót ajánlják.
  • A V8 motor frissítve lett a 11.8-as verzióra, amely a Chromium 118-ban található, és támogatja az ArrayBuffer.prototype.transfer metódust, a tömbcsoportosítás képességét (groupBy metódus) és a WebAssembly konstanskezelő utasításait (i32.add, i32.sub, i32.mul, i64.add, i64.sub és i64.mul).
  • A globalPreload handler is no longer supported; instead, use the register and initialize calls to configure modules.
  • The fs.writeFile function has been enhanced with a 'flush' option to force data to the storage device after each write operation.
  • The performance of code related to URL parsing, API fetch, streams, node:fs, and HTTP has been improved.
  • A global navigator object has been added. For example, to obtain data about the number of CPU cores, you can use the navigator.hardwareConcurrency property.
  • Glob patterns support has been added to the '--test' parameter for selecting tests to run (for example, you can specify '--test **/*.test.js').
  • The included package manager npm 10.2.0 and parser llhttp 9.1.2 have been updated.
  • Support for Visual Studio 2019 and macOS versions older than 11.0 has been discontinued.

A Node.js platform szerver oldali webalkalmazások működtetésére, valamint hagyományos kliens és szerver hálózati programok készítésére használható. A Node.js alkalmazások funkcionalitásának bővítése érdekében egy nagy modulgyűjtemény készült, amely tartalmaz különböző megvalósítású modulokat. szerverek és HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klienseket, valamint modulokat különböző webkeretrendszerek integrálásához, WebSocket és Ajax kezelőket, az adatbázisokhoz (MySQL, PostgreSQL, SQLite, MongoDB) való kapcsolódásokat, sablongenerátorokat, CSS-motorokat, kriptográfiai algoritmusok és hitelesítési rendszerek (OAuth) megvalósításait, XML-parsereket.

A számos párhuzamos kérés feldolgozásának biztosítása érdekében a Node.js aszinkron kódvégrehajtási modellt használ, amely események alapján működik, blokkolásmentes üzemmódban, és callback kezelők definiálásával. A kapcsolatok multiplexelésére olyan módszerek állnak rendelkezésre, mint az epoll, kqueue, /dev/poll és select. A kapcsolatok multiplexelésére a libuv könyvtárat használják, amely a libev fölé épül Unix rendszerekben és az IOCP-t a Windows rendszerekben. A szálmedence (thread pool) létrehozásához a libeio könyvtárat használják, míg a blokkolásmentes DNS-kérések végrehajtásához a c-ares integrálva van. Minden blokkolásos rendszerszó hívás a szálmedencén belül hajtódik végre, és a jelek kezelőihez hasonlóan az eredményüket egy névtelen csövön (pipe) keresztül adják vissza. A JavaScript-kód végrehajtását a Google által kifejlesztett V8 motor igénybevételével biztosítják (továbbá a Microsoft kifejleszti a Node.js egy változatát a Chakra-Core motorral).

A Node.js lényegében hasonlít a Perl AnyEvent, Ruby Event Machine, Python Twisted keretrendszerekhez és a Tcl eseménykezelés implementációjához, de a Node.js eseményfeldolgozó ciklus (event loop) rejtve marad a fejlesztő elől, és az események kezelésére emlékeztet egy webalkalmazás működésére a böngészőben. Node.js alkalmazások írása során figyelembe kell venni az eseményalapú programozás sajátosságait, például ahelyett, hogy „var result = db.query(„select..“);” formában várnánk a folyamat befejezésére és a visszatérő eredmények későbbi feldolgozására, a Node.js az aszinkron végrehajtás elvét alkalmazza, azaz a kód átalakul „db.query(„select..“, function (result) {eredményfeldolgozás});” formára, amely esetben a vezérlés azonnal folytatódik a további kóddal, és az adatokat a beérkezésükkor dolgozzuk fel.

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