Çlirimi i platformĂ«s servere JavaScript Node.js 16.0

Node.js 16.0 u lancua, platforma për ekzekutimin e aplikacioneve në rrjet me gjuhën JavaScript. Node.js 16.0 është kategorizuar në degën me mbështetje afatgjatë, por statusi do t'i jepet vetëm në tetor, pas stabilizimit. Mbështetja për Node.js 16.0 do të vazhdojë deri në prill 2023. Mbështetja për degën e kaluar LTS Node.js 14.0 do të vazhdojë deri në prill 2023, ndërsa për degën e mëparshme LTS 12.0 deri në prill 2022. Mbështetja për degën LTS 10.0 do të ndalet pas 10 ditësh.

Përmirësimet kryesore:

  • Motori V8 Ă«shtĂ« azhurnuar nĂ« versionin 9.0 (nĂ« Node.js 15 u pĂ«rdor lĂ«shimi 8.6), duke mundĂ«suar implementimin nĂ« Node.js 16 tĂ« mundĂ«sive tĂ« tilla si prona "indices" pĂ«r shprehjet e rregullta (pĂ«rfshin njĂ« array me pozitat fillestare dhe pĂ«rfundimtare tĂ« grupeve tĂ« pĂ«rputhjes), metoda Atomics.waitAsync (versioni asinkron i Atomics.wait), mbĂ«shtetje pĂ«r pĂ«rdorimin e fjalĂ«s kyçe await nĂ« modulet nĂ« nivelin e lartĂ«. Ka pasur njĂ« pĂ«rshpejtim nĂ« thirrjet e funksioneve, kur numri i argumenteve tĂ« dĂ«rguara nuk pĂ«rputhet me parametrat e pĂ«rcaktuar nĂ« funksion.
  • API Timers Promises Ă«shtĂ« stabilizuar, duke ofruar njĂ« grup alternativ funksionesh pĂ«r tĂ« punuar me timerat, qĂ« kthejnĂ« objekte Promise, duke lejuar kĂ«shtu shmangien e pĂ«rdorimit tĂ« util.promisify(). import { setTimeout } from 'timers/promises'; async function run() { await setTimeout(5000); console.log('Hello, World!'); } run();
  • NjĂ« implementim eksperimental i API Web Crypto Ă«shtĂ« shtuar, i destinuar pĂ«r tĂ« realizuar operacione bazike kriptografike nĂ« anĂ«n e aplikacioneve tĂ« web-it, si manipulimet me hash-et kriptografike, gjenerimin dhe verifikimin e nĂ«nshkrimeve digjitale, kodimin dhe dekodimin e tĂ« dhĂ«nave duke pĂ«rdorur metoda tĂ« ndryshme enkriptimi, formimin e numrave rastĂ«sorĂ« kriptografikisht tĂ« besueshĂ«m. API gjithashtu pĂ«rmban funksione pĂ«r gjenerimin dhe menaxhimin e çelĂ«save.
  • N-API (API pĂ«r zhvillimin e shtesave) Ă«shtĂ« azhurnuar nĂ« versionin 8.
  • ËshtĂ« realizuar kalimi nĂ« lĂ«shimin e ri tĂ« menaxherit tĂ« paketave NPM 7.10.
  • Implementimi i klasĂ«s AbortController, e bazuar nĂ« Web API AbortController, qĂ« lejon ndalimin e sinjaleve nĂ« API tĂ« pĂ«rzgjedhura tĂ« bazuara nĂ« Promise, Ă«shtĂ« stabilizuar.
  • MbĂ«shtetja pĂ«r versionin e tretĂ« tĂ« formatit Source Map, i pĂ«rdorur pĂ«r tĂ« lidhur modulet e gjeneruara, tĂ« pĂ«rpunuara ose tĂ« paketuar me kodin origjinal burimor, Ă«shtĂ« stabilizuar.
  • PĂ«r tĂ« ruajtur pĂ«rputhshmĂ«rinĂ« me Web API tĂ« vjetruara, janĂ« shtuar metodat buffer.atob(data) dhe buffer.btoa(data).
  • Ka filluar formimi i paketave pĂ«r pajisjet e reja Apple, tĂ« pajisura me çipin ARM M1.
  • NĂ« platformĂ«n Linux, kĂ«rkesat pĂ«r versionin e kompilatorit janĂ« rritur nĂ« GCC 8.3.

Përkujtojmë se platforma Node.js mund të përdoret si për mbështetje serverike të funksionimit të aplikacioneve Web, ashtu edhe për krijimin e programeve rrjetore 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 implementim. 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.

Shtesë mund të theksohet se kompania Deno, e krijuar nga krijuesi i Node.js për zhvillimin e platformës së brezit të ri Deno, ka marrë 4.9 milion dollarë investime. Në qëllim, Deno përngjan me Node.js, por përpiqet të eliminojë gabimet konceptuale të bëra në arkitekturën e Node.js dhe të ofrojë përdoruesve një ambient më të sigurt. Raportohet se zgjidhjet e biznesit të kompanisë Deno do të ndahen në produkte plotësisht të hapura, ndërsa modeli Open Core me ndarjen e funksionaliteteve të veçanta paguese konsiderohet i papranueshëm për platformën Deno.

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