Platforma server për JavaScript, Node.js 18.0, është e disponueshme.

Lëshimi i Node.js 18.0, platformës për ekzekutimin e aplikacioneve rrjetore në gjuhën JavaScript, është realizuar. Node.js 18.0 është renditur në degët me mbështetje afatgjatë, por ky status do të jepet vetëm në tetor, pas stabilizimit. Mbështetja për Node.js 18.x do të jetë në dispozicion deri në prill 2025. Mbështetja për degën e mëparshme LTS Node.js 16.x do të vazhdojë deri në prill 2024, ndërsa për degën LTS 14.x deri në prill 2023. Mbështetja për degën LTS 12.x do të ndërpritet më 30 prill, ndërsa për degën ndërmjetëse Node.js 17.x më 1 qershor.

Përmirësimet kryesore:

  • Motori V8 Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 10.1, i aplikuar nĂ« Chromium 101. Krahasuar me lĂ«shimin Node.js 17.9.0, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r mundĂ«si tĂ« tilla si metodat findLast dhe findLastIndex pĂ«r tĂ« kĂ«rkuar elemente nĂ« fund tĂ« masĂ«s dhe funksionin Intl.supportedValuesOf. API Intl.Locale Ă«shtĂ« pĂ«rmirĂ«suar. Inicilizimi i fushave tĂ« klasave dhe metodave private Ă«shtĂ« pĂ«rshpejtuar.
  • API fetch() eksperimentale Ă«shtĂ« pĂ«rfshirĂ« nĂ« mĂ«nyrĂ« tĂ« parazgjedhur, e cila Ă«shtĂ« e destinuar pĂ«r ngarkimin e burimeve pĂ«rmes rrjetit. Implementimi Ă«shtĂ« i bazuar nĂ« kodin nga klienti HTTP/1.1 undici dhe Ă«shtĂ« maksimalisht i afĂ«rt me API-nĂ« e ngjashme tĂ« ofruar nĂ« shfletues. ËshtĂ« siguruar mbĂ«shtetje pĂ«r ndĂ«rfaqet FormData, Headers, Request dhe Response pĂ«r manipulimin e titujve HTTP tĂ« kĂ«rkesave dhe pĂ«rgjigjeve. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
  • NjĂ« implementim eksperimental i API Web Streams Ă«shtĂ« shtuar, duke siguruar akses nĂ« pĂ«rrena tĂ« dhĂ«nash tĂ« marra pĂ«rmes rrjetit. API ofron mundĂ«sinĂ« pĂ«r tĂ« shtuar pĂ«rpunuesit tuaj pĂ«r tĂ« punuar me tĂ« dhĂ«na nĂ« kohĂ«n qĂ« ato vijnĂ« pĂ«rmes rrjetit, pa pritur ngarkimin e tĂ« gjithĂ« skedarit. NĂ« Node.js tani janĂ« nĂ« dispozicion objekte si ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream dhe DecompressionStream.
  • API Blob, i cili lejon inkapsulimin e tĂ« dhĂ«nave tĂ« papĂ«rshkueshme pĂ«r pĂ«rdorim tĂ« sigurt nĂ« rrjedha tĂ« ndryshme, Ă«shtĂ« pĂ«rfshirĂ« nĂ« radhĂ«t e stabilizuara.
  • API BroadcastChannel, i cili lejon organizimin e shkĂ«mbimit tĂ« mesazheve nĂ« njĂ« modalitet asinkron nĂ« formatin "njĂ« dĂ«rgues - shumĂ« marrĂ«s", Ă«shtĂ« pĂ«rfshirĂ« nĂ« radhĂ«t e stabilizuara.
  • NjĂ« modul eksperimental node:test Ă«shtĂ« shtuar pĂ«r krijimin dhe ekzekutimin e testeve nĂ« gjuhĂ«n JavaScript, i cili kthen rezultatin nĂ« formatin TAP (Test Anything Protocol).
  • JanĂ« krijuar grumbujt e gatshĂ«m pĂ«r Red Hat Enterprise Linux (RHEL) 8 dhe shpĂ«rndarje tĂ« tjera tĂ« bazuara nĂ« Glibc 2.28+, duke pĂ«rfshirĂ« Debian 10 dhe Ubuntu 20.04, si dhe pĂ«r macOS 10.15+. PĂ«r shkak tĂ« problemeve me grumbullimin e motorit V8, Ă«shtĂ« pezulluar pĂ«rkohĂ«sisht ndihma pĂ«r grumbujt 32-bit pĂ«r Windows.
  • ËshtĂ« ofruar njĂ« mundĂ«si eksperimentale pĂ«r tĂ« grumbulluar njĂ« skedar ekzekutiv Node.js me komponentĂ«t e zgjedhur nga pĂ«rdoruesi, tĂ« inicuar gjatĂ« nisjes. PĂ«r tĂ« pĂ«rcaktuar komponentĂ«t fillestarĂ«, nĂ« skriptin e grumbullimit configure Ă«shtĂ« shtuar opsioni "—node-snapshot-main", pĂ«r shembull, "./configure —node-snapshot-main=marked.js; name node".

Platforma Node.js mund të përdoret për mbështetje serverike të funksionimit të aplikacioneve Web, si dhe për krijimin e aplikacioneve të zakonshme klient-server. Për të zgjeruar funksionalitetin e aplikacioneve për Node.js, është përgatitur një koleksion i madh modulash, ku mund të gjenden module me implementime serverësh dhe klientë HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrimin me framework-e të ndryshme web, trajtues të WebSocket dhe Ajax, lidhës për DB (MySQL, PostgreSQL, SQLite, MongoDB), motorë të templativëve, engine CSS, implementime të algoritmeve kriptografikë dhe sisteme autorizimi (OAuth), parserë XML.

Për të siguruar përpunimin e një numri të madh kërkesash paralel, Node.js përdor një model asinkron të ekzekutimit të kodit, i bazuar në trajtimin e ngjarjeve në modusin jo-bllokues dhe përcaktimin e handler-ave të callback. Metodat e mbështetura për multipleximin e lidhjeve përfshijnë 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ë puli të thread-eve, përdoret biblioteka libeio, ndërsa për ekzekutimin e kërkesave DNS në mod të jo-bllokues, është integruar c-ares. Të gjitha thirrjet sistemore qe shkaktojnë bllokim, ekzekutohen brenda pulit të thread-eve dhe më pas, ashtu si dhe handler-at e sinjalit, përcjellin rezultatin e punës së tyre pas një kanali të paemëruar (pipe). Ekzekutimi i kodit JavaScript sigurohet përmes përdorimit të motorit V8 të zhvilluar nga kompania Google (përveç kësaj, Microsoft po 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 trajtimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe përngjan me trajtimin e ngjarjeve në një aplikacion web që funksionon në shfletues. Kur shkruani aplikacione për node.js, është e domosdoshme të merret parasysh specifika e programimit të orientuar nga ngjarjet, për shembull, në vend që të ekzekutohet "var result = db.query('select..');" duke pritur për përfundimin dhe përpunimin e rezultateve, në Node.js përdoret parimi i ekzekutimit asinkron, dmth. kodi transformohet në "db.query('select..', function (result) {përpunimi i rezultatit});", ku kontrolli do të kalojë menjëherë në kodin e mëtejshëm, dhe rezultati i kërkesës do të përpunohen ndërsa vijnë të dhënat.

Burimi: opennet.ru

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