E disponueshme platforma JavaScript nga ana e serverit Node.js 21.0

U lëshua Node.js 21.0, një platformë për ekzekutimin e aplikacioneve të rrjetit në JavaScript. Dega Node.js 21.0 do të mbështetet për 6 muaj. Në ditët në vijim do të përfundojë stabilizimi i degës Node.js 20, e cila do të marrë statusin LTS dhe do të mbështetet deri në prill 2026. Mirëmbajtja e degës së mëparshme LTS të Node.js 18.0 do të zgjasë deri në shtator 2025 dhe vitin para fundit të degës LTS 16.0 deri në prill 2024.

Përmirësimet kryesore:

  • Fetch API Ă«shtĂ« deklaruar i qĂ«ndrueshĂ«m, i projektuar pĂ«r ngarkimin e burimeve nĂ« rrjet dhe thjeshtimin e shkrimit tĂ« kodit universal JavaScript tĂ« pĂ«rshtatshĂ«m pĂ«r tĂ« punuar nĂ« anĂ«n e serverit dhe tĂ« klientit. Zbatimi bazohet nĂ« kodin nga klienti undici HTTP/1.1 dhe Ă«shtĂ« sa mĂ« afĂ«r API-sĂ« sĂ« ngjashme tĂ« ofruar nĂ« shfletues. API pĂ«rfshin metodĂ«n fetch() dhe objektet Headers. KĂ«rkesĂ« dhe pĂ«rgjigje, qĂ« pĂ«rfaqĂ«son titujt, kĂ«rkesĂ«n dhe pĂ«rgjigjen HTTP. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) {const data = await res.json(); konsol.log(tĂ« dhĂ«na); }
  • MbĂ«shtetja pĂ«r WebStreams API, e cila siguron qasje nĂ« rrjedhat e tĂ« dhĂ«nave tĂ« marra pĂ«rmes rrjetit, Ă«shtĂ« stabilizuar. API bĂ«n tĂ« mundur shtimin e mbajtĂ«sve tuaj qĂ« punojnĂ« me tĂ« dhĂ«nat kur informacioni mbĂ«rrin pĂ«rmes rrjetit, pa pritur qĂ« tĂ« shkarkohet i gjithĂ« skedari. Objektet e disponueshme nĂ« Node.js pĂ«rfshijnĂ« ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream dhe DecompressionStream.
  • U shtua implementimi eksperimental i klientit WebSocket, i pajtueshĂ«m me shfletuesitPĂ«r tĂ« aktivizuar mbĂ«shtetjen e WebSocket, pĂ«rdorni flamurin "--experimental-websocket".
  • U shtua njĂ« modalitet eksperimental pĂ«r pĂ«rdorimin e zbatimit tĂ« paracaktuar tĂ« moduleve JavaScript ESM (Modulet ECMAScript, tĂ« pĂ«rdorura nĂ« modulet pĂ«r shfletues) nĂ« vend tĂ« CommonJS (specifik pĂ«r Node.js). Ndryshimi nuk prek modulet, formati i tĂ« cilave Ă«shtĂ« pĂ«rcaktuar nĂ« mĂ«nyrĂ« eksplicite nĂ«pĂ«rmjet fushĂ«s "type" nĂ« package.json, specifikuar nĂ«pĂ«rmjet flamurit "--input-type" ose Ă«shtĂ« i dukshĂ«m pĂ«r shkak tĂ« shtesĂ«s sĂ« skedarit (.mjs pĂ«r ESM, .cjs pĂ«r CommonJS). MegjithatĂ«, modulet qĂ« nuk janĂ« pĂ«rcaktuar nĂ« mĂ«nyrĂ« eksplicite si CommonJS (pĂ«r shembull, kanĂ« njĂ« shtesĂ« ".js") do tĂ« trajtohen si module ESM kur tĂ« aktivizohet modaliteti i ri. PĂ«r tĂ« aktivizuar cilĂ«simet e reja tĂ« modulit, Ă«shtĂ« propozuar flamuri "--experimental-default-type".
  • Motori V8 Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 11.8, i pĂ«rdorur nĂ« Chromium 118, i cili tani mbĂ«shtet metodĂ«n ArrayBuffer.prototype.transfer, aftĂ«sinĂ« pĂ«r tĂ« grupuar vargje (metoda grupBy) dhe udhĂ«zime WebAssembly pĂ«r pĂ«rpunimin e konstantave (i32.add, i32.sub, i32.mul, i64 .add, i64.sub dhe i64.mul).
  • MbĂ«shtetja pĂ«r mbajtĂ«sin globalPreload Ă«shtĂ« ndĂ«rprerĂ«, nĂ« favor tĂ« regjistrimit dhe inicializimit tĂ« thirrjeve pĂ«r tĂ« konfiguruar modulet.
  • NjĂ« opsion "flush" Ă«shtĂ« shtuar nĂ« funksionin fs.writeFile pĂ«r tĂ« detyruar qĂ« tĂ« dhĂ«nat tĂ« shpĂ«rndahen nĂ« disk pas çdo operacioni shkrimi.
  • Performanca e pĂ«rmirĂ«suar e kodit nĂ« lidhje me analizimin e URL-ve, API-nĂ« e marrjes, transmetimet, nyjen:fs dhe HTTP.
  • U shtua objekti i navigatorit global. PĂ«r shembull, pĂ«r tĂ« marrĂ« tĂ« dhĂ«na pĂ«r numrin e bĂ«rthamave tĂ« CPU-sĂ«, mund tĂ« pĂ«rdorni veçorinĂ« navigator.hardwareConcurrency.
  • NĂ« parametrin "—test", Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r maskat glob pĂ«r zgjedhjen e testeve pĂ«r ekzekutim (pĂ«r shembull, mund tĂ« specifikoni "—test **/*.test.js.").
  • Menaxheri i paketave tĂ« paketuara npm 10.2.0 dhe analizuesi llhttp 9.1.2 janĂ« pĂ«rditĂ«suar.
  • Visual Studio 2019 dhe versionet e mĂ«vonshme nuk mbĂ«shteten mĂ«. macOS mĂ« i vjetĂ«r se 11.0.

Platforma Node.js mund të përdoret si për mbështetjen e aplikacioneve web nga ana e serverit, ashtu edhe për krijimin e programeve standarde të rrjetit nga ana e klientit dhe serverit. Për të zgjeruar funksionalitetin e aplikacioneve Node.js, është përgatitur një koleksion i madh modulesh, duke përfshirë ato me implementime. serverat dhe klientë të HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me korniza të ndryshme web, trajtues WebSocket dhe Ajax, lidhës për DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorë shabllonësh, motorë CSS, implementime të algoritmeve kriptografike dhe sistemeve të autorizimit (OAuth), analizues XML.

Për të trajtuar një numër të madh kërkesash paralele, Node.js përdor një model ekzekutimi asinkron të kodit bazuar në përpunimin e ngjarjeve jo-bllokuese dhe trajtuesit e thirrjeve të kthimit. Metodat e multipleksimit të lidhjeve të mbështetura përfshijnë epoll, kqueue, /dev/poll dhe select. Biblioteka libuv, e cila është një superset i libev në sistemet Unix dhe IOCP në IOCP, përdoret për multipleksimin e lidhjeve. WindowsBiblioteka libeio përdoret për të krijuar një grup fijesh, dhe c-ares është i integruar për të kryer pyetje DNS në modalitetin jo-bllokues. Të gjitha thirrjet e sistemit bllokues ekzekutohen brenda grupit të fijeve dhe më pas, ashtu si trajtuesit e sinjaleve, kthejnë rezultatet e tyre nëpërmjet një tubi pa emër. Ekzekutimi i JavaScript ofrohet nga motori V8 i Google (Microsoft po zhvillon gjithashtu një variant të Node.js me motorin Chakra-Core).

Në thelb, Node.js është i ngjashëm me Perl AnyEvent, Ruby Event Machine, Python Twisted kornizat dhe zbatimin e ngjarjeve Tcl, por cikli i ngjarjes në Node.js është i fshehur nga zhvilluesi dhe i ngjan trajtimit të ngjarjeve në një aplikacion ueb që ekzekutohet në shfletues. Kur shkruani aplikacione për node.js, duhet të merrni parasysh specifikat e programimit të drejtuar nga ngjarjet, për shembull, në vend që të bëni "var result = db.query("select..");" me pritjen e përfundimit të punës dhe përpunimin pasues të rezultateve, Node.js përdor parimin e ekzekutimit asinkron, d.m.th. kodi transformohet në "db.query("select..", function (rezultat) {result processing});", në të cilin kontrolli do të kalojë në çast në kodin e mëtejshëm dhe rezultati i pyetjes do të përpunohet me mbërritjen e të dhënave.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster