Lëshimi i platformës servere JavaScript, Node.js 16.0

U publikua Node.js 16.0, platforma për ekzekutimin e aplikacioneve rrjetore në gjuhën JavaScript. Node.js 16.0 i është caktuar statusi i një dege me mbështetje afatgjatë, por ky status do t'i jepet vetëm në përfundim të stabilizimit në tetor. Mbështetja për Node.js 16.0 do të ofrohet deri në prill 2023. Mbështetja për degën e mëparshme LTS Node.js 14.0 do të vazhdojë deri në prill 2023, ndërsa për degën më të vjetër LTS 12.0 deri në prill 2022. Mbështetja për degën LTS 10.0 do të ndërpritet pas 10 ditësh.

Përmirësimet kryesore:

  • Motori V8 Ă«shtĂ« azhurnuar nĂ« versionin 9.0 (nĂ« Node.js 15 ishte pĂ«rdorur versioni 8.6), duke lejuar qĂ« Node.js 16 tĂ« ketĂ« mundĂ«si tĂ« tilla si prapa 'indices' pĂ«r shprehjet e rregullta (pĂ«rfshin njĂ« array me pozitat fillestare dhe pĂ«rfundimtare tĂ« grupeve tĂ« pĂ«rputhjeve), metoda Atomics.waitAsync (versioni asinkron i Atomics.wait), suportimi pĂ«r pĂ«rdorimin e fjalĂ«s kyçe await nĂ« module nĂ« nivel tĂ« lartĂ«. Kjo ka pĂ«rshpejtuar thirrjet e funksioneve, kur numri i argumenteve tĂ« kaluara nuk pĂ«rputhet me parametrat e caktuar nĂ« funksion.
  • API i Timers Promises Ă«shtĂ« stabilizuar, duke ofruar njĂ« grup alternativ funksionesh pĂ«r punĂ«n me temporizatorĂ«t qĂ« kthejnĂ« objekte Promise, çka lejon shmangien e pĂ«rdorimit tĂ« util.promisify(). import { setTimeout } from 'timers/promises'; async function run() { await setTimeout(5000); console.log('PĂ«rshĂ«ndetje, BotĂ«!'); } run();
  • NjĂ« implementim eksperimental i API Web Crypto Ă«shtĂ« shtuar, i dedikuar pĂ«r kryerjen e operacioneve themelore criptografike nĂ« anĂ«n e aplikacioneve web, si manipulimet me hash-et criptografike, gjenerimin dhe verifikimin e nĂ«nshkrimeve dixhitale, kodimin dhe dekodimin e tĂ« dhĂ«nave duke pĂ«rdorur metoda tĂ« ndryshme enkriptimi, si dhe krijimin e numrave tĂ« rastit me siguri criptografike. API-ja parashikon gjithashtu funksione pĂ«r gjenerimin dhe menaxhimin e çelĂ«save.
  • N-API (API pĂ«r zhvillimin e plotĂ«simeve) Ă«shtĂ« azhurnuar nĂ« versionin 8.
  • ÊshtĂ« bĂ«rĂ« kalimi nĂ« versionin e ri tĂ« menaxhuesit tĂ« paketeve NPM 7.10.
  • Implementimi i klasĂ«s AbortController, i bazuar nĂ« Web API AbortController, Ă«shtĂ« stabilizuar dhe lejon anulimin e sinjaleve nĂ« API tĂ« zgjedhura tĂ« bazuara nĂ« Promise.
  • MbĂ«shtetja pĂ«r versionin e tretĂ« tĂ« formatit Source Map, i pĂ«rdorur pĂ«r tĂ« mapuar modulĂ«t e gjeneruar, tĂ« pĂ«rpunuar ose tĂ« pĂ«rmbledhur me kodin burimor origjinal, Ă«shtĂ« stabilizuar.
  • PĂ«r t'u siguruar pĂ«rputhshmĂ«ria me Web API-tĂ« e vjetra, janĂ« shtuar metodat buffer.atob(data) dhe buffer.btoa(data).
  • Ka filluar formimi i ndĂ«rtimeve pĂ«r pajisje tĂ« reja Apple me çipin ARM M1.
  • NĂ« platformĂ«n Linux, kĂ«rkesat pĂ«r versionin e kompilatorit janĂ« rritur nĂ« GCC 8.3.

Kujtojmë se platforma Node.js mund të përdoret si për mbështetje serveri të funksionimit të aplikacioneve Web, ashtu edhe për krijimin e programeve 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ë gjeni module me implementime. 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ë.

Gjithashtu, duhet përmendur se kompania Deno, e themeluar nga krijuesi i Node.js për zhvillimin e platformës së ardhshme Deno, ka marrë 4.9 milion dollarë investime. Deno ngjason me Node.js në qëllim, por përpiqet të eliminojë gabimet konceptuale të bëra në arkitekturën e Node.js dhe t'u ofrojë përdoruesve një mjedis më të sigurt. Raportohet se zgjidhjet biznesore të kompanisë Deno do të ndërtohen mbi produkte plotësisht të hapura, ndërsa modeli Open Core që ndan funksionalitetin e veçantë në një pagesë konsiderohet i papranueshëm për platformën Deno.

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