Platforma servere JavaScript Node.js 18.0 është e disponueshme

U publikua Node.js 18.0, platforma për ekzekutimin e aplikacioneve rrjetike në gjuhën JavaScript. Node.js 18.0 është klasifikuar në degët me mbështetje afatgjatë, por statusi do t'i jepet vetëm në tetor, pas stabilizimit. Mbështetje për Node.js 18.x do të realizohet deri në prill 2025. Mbshtetja e degës së 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ë përfundojë më 30 prill, dhe për degën ndërmjetëse Node.js 17.x më 1 qershor.

Përmirësimet kryesore:

  • Motori V8 Ă«shtĂ« azhurnuar nĂ« versionin 10.1, i pĂ«rdorur nĂ« Chromium 101. Krahasuar me lĂ«shimin Node.js 17.9.0, tani ka mbĂ«shtetje pĂ«r funksionalitete si metodat findLast dhe findLastIndex pĂ«r tĂ« kĂ«rkuar elemente nĂ« fund tĂ« array-t dhe funksionet Intl.supportedValuesOf. API Intl.Locale Ă«shtĂ« pĂ«rmirĂ«suar. Inizializimi i fushave tĂ« klasave dhe metodave private Ă«shtĂ« pĂ«rshpejtuar.
  • API eksperimental fetch() Ă«shtĂ« aktivizuar si default, qĂ« Ă«shtĂ« i destinuar pĂ«r ngarkimin e burimeve nga interneti. Implementimi bazohet nĂ« kodin nga klienti HTTP/1.1 undici dhe Ă«shtĂ« sa mĂ« afĂ«r API-sĂ« sĂ« ngjashme qĂ« ofrohet nĂ« shfletuesit. PĂ«rfshihet 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Ă« realizim eksperimental i API Web Streams Ă«shtĂ« shtuar, qĂ« ofron qasje nĂ« rrjedhat e dhĂ«nave tĂ« marra nga interneti. API lejon shtimin e trajtuesve tĂ« personalizuar pĂ«r tĂ« punuar me tĂ« dhĂ«nat ndĂ«rsa informatat vijnĂ«, pa pritur qĂ« tĂ« ngarkohet e gjithĂ« skedari. NĂ« Node.js tani janĂ« tĂ« disponueshĂ«m objekte si ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream dhe DecompressionStream.
  • API Blob Ă«shtĂ« pĂ«rfshirĂ« nĂ« listĂ«n e stabilizuar, i cili lejon inkapsulimin e tĂ« dhĂ«nave tĂ« paprekshme pĂ«r pĂ«rdorim tĂ« sigurt nĂ« punĂ«t e ndryshme.
  • API BroadcastChannel Ă«shtĂ« pĂ«rfshirĂ« nĂ« listĂ«n e stabilizuar, i cili lejon organizimin e shkĂ«mbimit tĂ« mesazheve nĂ« mĂ«nyrĂ« asinkrone nĂ« formatin 'njĂ« dĂ«rgues - shumĂ« marrĂ«s'.
  • NjĂ« modul eksperimental node:test Ă«shtĂ« shtuar pĂ«r krijimin dhe ekzekutimin e testeve nĂ« gjuhĂ«n JavaScript, qĂ« kthen rezultatet nĂ« formatin TAP (Test Anything Protocol).
  • JanĂ« krijuar ndĂ«rtimet e gatshme pĂ«r Red Hat Enterprise Linux (RHEL) 8 dhe distribuime tĂ« tjera qĂ« bazohen 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 ndĂ«rtimin e motorit V8, ndĂ«rtimet 32-bit pĂ«r Windows janĂ« pezulluar pĂ«rkohĂ«sisht.
  • ËshtĂ« ofruar mundĂ«sia eksperimentale pĂ«r ndĂ«rtimin e ekzekutuesit Node.js me komponentĂ« tĂ« zgjedhur nga pĂ«rdoruesi, tĂ« inicializuar gjatĂ« fillimit. PĂ«r pĂ«rcaktimin e komponentĂ«ve fillestarĂ«, Ă«shtĂ« shtuar opsioni '--node-snapshot-main' nĂ« skriptin e ndĂ«rtimit configure, pĂ«r shembull, './configure --node-snapshot-main=marked.js; name node'

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