Platforma serveri JavaScript Node.js 21.0 është e disponueshme.

U publikua Node.js 21.0, platforma për ekzekutimin e aplikacioneve rrjet në gjuhën JavaScript. Mbështetje për degën Node.js 21.0 do të ofrohet për 6 muaj. Në ditët e ardhshme 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. Mbështetje për degën e kaluar LTS, Node.js 18.0, do të vazhdojë deri në shtator 2025, ndërsa për degën e mëparshme LTS 16.0 deri në prill 2024.

Përmirësimet kryesore:

  • ËshtĂ« shpallur API Fetch si tĂ« qĂ«ndrueshĂ«m, i cili Ă«shtĂ« i destinuar pĂ«r shkarkimin e burimeve nĂ« rrjet dhe pĂ«r tĂ« thjeshtuar shkruajtjen e kodit universitar nĂ« JavaScript, i pĂ«rshtatshĂ«m pĂ«r funksionimin nĂ« anĂ«n e serverit dhe klientit. Implementimi bazohet nĂ« kodin e klientit HTTP/1.1, undici dhe Ă«shtĂ« maksimalisht i ngjashĂ«m me API-nĂ« pĂ«rkatĂ«se qĂ« ofrohet nĂ« shfletues. API pĂ«rfshin metodĂ«n fetch() si dhe objektet Headers, Request dhe Response, qĂ« pĂ«rfaqĂ«sojnĂ« titujt HTTP, kĂ«rkesat dhe pĂ«rgjigjet. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
  • MbĂ«shtetja pĂ«r API WebStreams Ă«shtĂ« stabilizuar, e cila ofron qasje nĂ« rrjedhat e tĂ« dhĂ«nave qĂ« merret pĂ«rmes rrjetit. API ofron mundĂ«sinĂ« pĂ«r tĂ« shtuar menaxhues tĂ« tu, qĂ« punojnĂ« me tĂ« dhĂ«nat siç vijnĂ« pĂ«rpara se tĂ« ngarkohet i gjithĂ« skedari. NĂ« Node.js janĂ« tĂ« disponueshme objekte si ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream dhe DecompressionStream.
  • ËshtĂ« shtuar njĂ« implementim eksperimental i klientit WebSocket, i pajtueshĂ«m me shfletuesit. PĂ«r tĂ« aktivizuar mbĂ«shtetje pĂ«r WebSocket Ă«shtĂ« parashikuar njĂ« flag '—experimental-websocket'.
  • ËshtĂ« shtuar njĂ« mod eksperimental pĂ«r pĂ«rdorimin e moduleve JavaScript ESM (ECMAScript Modules, e cila aplikohet nĂ« modulet pĂ«r shfletues) nĂ« vend tĂ« CommonJS (e veçantĂ« pĂ«r Node.js). Ky ndryshim nuk ndikon nĂ« modulet, formati i tĂ« cilave Ă«shtĂ« pĂ«rcaktuar qartĂ« pĂ«rmes fushĂ«s 'type' nĂ« package.json, tĂ« caktuar pĂ«rmes flag '—input-type' ose qĂ« Ă«shtĂ« e dukshme nga prapashtesa e skedarit (.mjs pĂ«r ESM, .cjs pĂ«r CommonJS). NĂ« kĂ«tĂ« mĂ«nyrĂ«, modulet qĂ« nuk pĂ«rcaktohen qartĂ« si CommonJS (pĂ«r shembull, kanĂ« prapashtesĂ«n '.js'), do tĂ« trajtohen si ESM kur aktivizohet moda e re. PĂ«r tĂ« aktivizuar konfigurimet e reja tĂ« moduleve, Ă«shtĂ« propozuar njĂ« flag '—experimental-default-type'.
  • Motori V8 Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 11.8, i cili aplikohet nĂ« Chromium 118, nĂ« tĂ« cilin ka ardhur mbĂ«shtetje pĂ«r metodĂ«n ArrayBuffer.prototype.transfer, mundĂ«sia pĂ«r grupimin e masave (metoda groupBy) dhe instruksione tĂ« WebAssembly pĂ«r trajtimin e konstantĂ«ve (i32.add, i32.sub, i32.mul, i64.add, i64.sub dhe i64.mul).
  • MbĂ«shtetje pĂ«r menaxhuesin globalPreload Ă«shtĂ« ndalur, pĂ«r tĂ« cilin pĂ«r konfigurimin e moduleve duhet tĂ« pĂ«rdoren thirrjet register dhe initialize.
  • NĂ« funksionin fs.writeFile Ă«shtĂ« shtuar opsioni 'flush' pĂ«r tĂ« detyruar shkarkimin e tĂ« dhĂ«nave nĂ« ruajtĂ«s pas çdo operacioni tĂ« shkruajtjes.
  • Ka disa pĂ«rmirĂ«sime tĂ« performancĂ«s nĂ« kodin e lidhur me analizimin e URL, API fetch, rrjedhat, node:fs dhe HTTP.
  • ËshtĂ« shtuar njĂ« objekt global navigator. PĂ«r shembull, pĂ«r tĂ« marrĂ« tĂ« dhĂ«na mbi numrin e bĂ«rthamave CPU, mund tĂ« pĂ«rdoret pronĂ«sia navigator.hardwareConcurrency.
  • NĂ« parametrin '—test' Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r maskat glob pĂ«r zgjedhjen e testeve qĂ« do tĂ« ekzekutohen (pĂ«r shembull, mund tĂ« specifikohet '—test **/*.test.js.').
  • JanĂ« pĂ«rditĂ«suar menaxheri i paketave npm 10.2.0 dhe parseri llhttp 9.1.2.
  • MbĂ«shtetje pĂ«r Visual Studio 2019 dhe versionet e macOS mĂ« tĂ« vjetra se 11.0 Ă«shtĂ« ndalur.

Platforma Node.js mund të përdoret si për mbështetje të serverëve të aplikacioneve Web, ashtu edhe për të krijuar programe të zakonshme klients-server të rrjeteve. Për të zgjeruar funksionalitetin e aplikacioneve për Node.js është përgatitur një koleksion i madh modulash, ku mund të gjeni module me realizim. servera dhe klientë HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me korniza të ndryshme web, procesorë WebSocket dhe Ajax, lidhës për DB (MySQL, PostgreSQL, SQLite, MongoDB), motorë për modelim, CSS, realizime të algoritmeve kriptografikë dhe sistemeve të autorizimit (OAuth), parserë XML.

Për të siguruar përpunimin e një numri të madh kërkesash paralele, Node.js përdor një model asinkron për ekzekutimin e kodit, i bazuar në përpunimin e ngjarjeve në një mënyrë që nuk bllokon dhe në përcaktimin e trajtuesve të callback. Si metoda për multipleximin e lidhjeve, mbështeten metoda të tilla si epoll, kqueue, /dev/poll dhe select. Biblioteka libuv përdoret për multipleximin e lidhjeve, e cila është një shtresë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një vende pune (thread pool) përdoret biblioteka libeio, dhe për kryerjen e kërkesave DNS në mënyrë asinkrone është integruar c-ares. Të gjitha thirrjet në sistem që shkaktojnë bllokim ekzekutohen brenda vendeve të punës dhe më pas, si trajtuesit e sinjaleve, përcjellin rezultatin e punës së tyre përsëri përmes një kanali të paemërtuar (pipe). Ekzekutimi i kodit JavaScript sigurohet përmes angazhimit të motorit V8 të zhvilluar nga kompanitë Google (përveç kësaj, Microsoft zhvillon një variant të Node.js me motorin Chakra-Core).

Në thelb, Node.js është e ngjashme me framework-et Perl AnyEvent, Ruby Event Machine, Python Twisted dhe implementimin e ngjarjeve në Tcl, por cikli i përpunimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe i ngjan përpunimit të ngjarjeve në një aplikacion web që funksionon në shfletues. Kur shkruani aplikacione për Node.js, është e rëndësishme të merrni parasysh veçantitë e programimit të orientuar në ngjarje, për shembull, në vend të ekzekutimit të «var result = db.query(«select..»);» me pritjen e përfundimit të punës dhe përpunimi i mëvonshëm i rezultateve, Node.js përdor principin e ekzekutimit asinkron, domethënë kodi transformohet në «db.query(«select..», function (result) {përpunimi i rezultatit});», ku kontrolli do të kalojë menjëherë në kodin e mëtejmë dhe rezultati i kërkesës do të përpunohet ndërsa të dhënat mbërrijnë.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster