A JavaScript szerverplatform Node.js 16.0 kiadása

Megjelent a Node.js 16.0, amely a JavaScript nyelvű hálózati alkalmazások futtatására szolgáló platform. A Node.js 16.0 a hosszú távú támogatású ágazatok közé tartozik, de ezt a státuszt csak októberben kapja meg a stabilizálás után. A Node.js 16.0 támogatása 2023 áprilisáig tart. A korábbi LTS ágazat, a Node.js 14.0 támogatása 2023 áprilisáig folytatódik, míg az előző LTS ágazat, a 12.0 2022 áprilisáig, a 10.0 LTS ágazat pedig 10 napon belül megszűnik.

Fő fejlesztések:

  • A V8 motor frissítve lett 9.0 verzióra (a Node.js 15-ben a 8.6-os kiadás volt), amely lehetővé tette a Node.js 16-ban olyan funkciók bevezetését, mint a „indices” tulajdonság a reguláris kifejezésekhez (tartalmaz egy tömböt a találati csoportok kezdő és végső pozícióival), az Atomics.waitAsync módszer (az Atomics.wait aszinkron változata), és a await kulcsszó támogatása modulokban a legfelső szinten. A funkciók meghívása gyorsabbá vált, ha a megadott argumentumok száma nem felel meg a függvény paramétereinek.
  • A Timers Promises API stabilizálva lett, amely alternatív funkciókészletet kínál a timer kezelésére, Promise objektumok visszaadásával, lehetővé téve a util.promisify() használatának elkerülését. import { setTimeout } from ‘timers/promises’; async function run() { await setTimeout(5000); console.log(‘Hello, World!’); } run();
  • Kísérleti megvalósítása készült a Web Crypto API-nak, amely alapvető kriptográfiai műveletek végrehajtására szolgál webalkalmazásokon, mint például a kriptográfiai hashekkel való manipulálás, digitális aláírások generálása és ellenőrzése, adatokat különböző titkosítási módszerekkel kódolva és dekódolva, valamint kriptográfiailag biztonságos véletlen számok létrehozása. Az API kulcsgenerálásra és a kulcsok kezelésére is kínál funkciókat.
  • Az N-API (kiegészítők fejlesztésére szolgáló API) frissítve lett a 8. verzióra.
  • Átálltak az új NPM 7.10 csomagkezelő kiadásra.
  • Stabilizálva lett az AbortController osztály megvalósítása, amely a Web API AbortController alapján készült, és lehetővé teszi a jelek lemondását a Promise alapú API-kban.
  • A Source Map formátum harmadik verziójának támogatása stabilizálva lett, amelyet a generált, feldolgozott vagy csomagolt modulok eredeti forráskódjával való összevetésére használnak.
  • A régi Web API-k kompatibilitása érdekében hozzáadták a buffer.atob(data) és buffer.btoa(data) metódusokat.
  • Megkezdődött az Apple új M1 ARM chipet használó eszközeire készült build-ok formálása.
  • Linux platformon a fordítóverzióval szembeni követelmények a GCC 8.3-ra emelkedtek.

Ne feledjük, hogy a Node.js platformot nemcsak Web-alkalmazások szerveroldali működtetésére, hanem hagyományos ügyfél- és szerveroldali hálózati programok készítésére is használják. A Node.js alkalmazások funkcionalitásának bővítésére egy nagy modulgyűjtemény áll rendelkezésre, amely tartalmazza a 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.

Továbbá megemlíthető, hogy a Deno nevű társaság, amelyet a Node.js fejlesztője alapított a következő generációs Deno platform fejlesztésére, 4,9 millió dollárnyi tőkebefektetést kapott. Felhasználását tekintve a Deno hasonlít a Node.js-hez, de arra törekszik, hogy megszüntesse azokat a koncepcionális hibákat, amelyeket a Node.js architektúrájában elkövettek, és biztonságosabb környezetet biztosítson a felhasználók számára. Megjegyzendő, hogy a Deno üzleti megoldásai teljes mértékben nyílt termékeken fognak alapulni, és az Open Core modell, amely külön díjazott funkciók kiemelését tartalmazza, a Deno platform számára elfogadhatatlannak számít.

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