Lëshimi i platformës serverike JavaScript Node.js 14.0

U shpall lëshimi Node.js 14.0, platforma për ekzekutimin e aplikacioneve rrjet në gjuhën JavaScript. Node.js 14.0 i përket degëve me mbështetje të gjatë, por ky status do t'i pranohet vetëm në tetor, pas stabilizimit. Mbështetje për Node.js 14.0 do të sigurohet deri në prill 2023. Mbështetje për degën e kaluar LTS Node.js 12.0 do të vazhdojë deri në prill 2022, ndërsa për degën LTS 10.0 deri në prill 2021. Mbështetje për degën ndërmjetëse 13.x do të përfundojë në qershor të këtij viti.

Ndryshimet kryesore përmirësime:

  • Stabilizimi i mundĂ«sisĂ« pĂ«r tĂ« gjeneruar nĂ« fluks ose kur ndodhin ngjarje tĂ« caktuara raportet diagnostike, tĂ« cilat pasqyrojnĂ« ngjarjet, ndihmojnĂ« nĂ« diagnostikimin e problemeve si çarjet, rĂ«nia e performancĂ«s, humbjet e memories, ngarkesa e madhe nĂ« CPU, dalje e papritur e gabimeve etj.
  • Shtuar mbĂ«shtetje eksperimentale pĂ«r API Async Local Storage me implementimin e klasĂ«s AsyncLocalStorage, e cila mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar gjendje asinkrone me trajtues tĂ« bazuar nĂ« thirrje callback dhe promise. AsyncLocalStorage lejon ruajtjen e tĂ« dhĂ«nave gjatĂ« pĂ«rpunimit tĂ« kĂ«rkesave web, duke kujtuar magazinat lokale pĂ«r fije tĂ« veçanta (Thread-Local Storage) nĂ« gjuhĂ« tĂ« tjera.
  • KĂ«tu u hoq njoftimi pĂ«r mundĂ«sinĂ« eksperimentale gjatĂ« ngarkimit moduleve tĂ« tij ECMAScript 6 tĂ« moduleve tĂ« importuara dhe eksportuara nĂ«pĂ«rmjet shprehjeve import dhe export. MegjithatĂ«, vetĂ« implementimi i moduleve ESM ende mbetet eksperimental.
  • Motor V8 Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 8.1 (1, 2, 3), ku janĂ« bĂ«rĂ« optimizime tĂ« reja tĂ« performancĂ«s dhe janĂ« shtuar risitĂ« si operatori logjik i bashkimit "??" (kthen operandin e djathtĂ« nĂ«se operandja e majtĂ« ka vlerĂ« NULL ose undefined, dhe e kundĂ«rta), operatori "?." pĂ«r verifikimin e tĂ« gjithĂ« zinxhirit tĂ« pronave ose thirrjeve (p.sh. "db?.user?.name?.length" pa kontrolle paraprake), metoda Intl.DisplayName pĂ«r marrjen e emrave tĂ« lokalizuar etj.
  • ËshtĂ« bĂ«rĂ« njĂ« rishikim i API-TĂ« Streams, i fokusuar nĂ« pĂ«rmirĂ«simin e koherencĂ«s sĂ« ndĂ«rfaqeve tĂ« API-ve Streams dhe eliminimin e ndryshimeve nĂ« sjelljen e pjesĂ«ve bazĂ« tĂ« Node.js. P.sh., sjellja e http.OutgoingMessage Ă«shtĂ« afruar me stream.Writable, dhe net.Socket me stream.Duplex. Opsioni autoDestroy tani Ă«shtĂ« i vendosur nĂ« "true", qĂ« nĂ«nkupton thirrjen e "_destroy" pasi pĂ«rfundon.
  • Shtuar mbĂ«shtetje eksperimentale pĂ«r API WASI (WebAssembly System Interface), qĂ« ofron ndĂ«rfaqe programimi pĂ«r ndĂ«rveprimin e drejtpĂ«rdrejtĂ« me sistemin operativ (POSIX API pĂ«r punĂ«n me skedarĂ«, socket-e etj.).
  • KĂ«rkesat pĂ«r versionet minimale tĂ« kompilatorĂ«ve dhe platformave janĂ« rritur: macOS 10.13 (High Sierra), GCC 6, Windows mĂ« tĂ« reja se 7/2008R2.

Duam të kujtojmë se platforma Node.js mund të përdoret si për mbështetje të serverëve të aplikacioneve Web, ashtu edhe për krijimin e programeve të zakonshme të klientëve dhe serverëve të rrjeteve. Për të rritur funksionalitetin e aplikacioneve për Node.js, është përgatitur një koleksion i madh modulash, ku mund të gjeni module me implementimin e serverëve dhe klientëve HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrimin me framework-e të ndryshme web, trajtesa WebSocket dhe Ajax, lidhës për DBMS (MySQL, PostgreSQL, SQLite, MongoDB), gjenerues të shablloneve, motorë CSS, implementime të algoritmave kripto 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 modelin asinkron të ekzekutimit të kodit, të bazuar në përpunimin e ngjarjeve në mënyrë jo bllokuese dhe përcaktimin e trajtesave callback. Si metoda të multiplikimit të lidhjeve, mbështeten metoda si epoll, kqueue, /dev/poll dhe select. Për multiplikimin e lidhjeve përdoret biblioteka libuv, e cila është një shtresë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një grupi thread-ash (thread pool) përdoret biblioteka libeio, për kryerjen e kërkesave DNS në një mod të pa bllokuar të integruar c-ares. Të gjitha thirrjet sistemore që shkaktojnë bllokim ekzekutohen brenda një pooli fshirës dhe pastaj, siç është edhe menaxhimi i sinjaleve, kthejnë rezultatin e punës së tyre përmes një kanali të pa emëruar (pipe). Ekzekutimi i kodit JavaScript sigurohet përmes angazhimit të motorit të zhvilluar nga Google V8 (përveç kësaj, Microsoft zhvillon një variant Node.js me motorin Chakra-Core).

Në thelb, Node.js është e ngjashme me strukturat Perl AnyEvent, Ruby Event Machine, Python Twisted dhe implementim Evenimentet 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ë aplikacionet web që funksionojnë në shfletues. Kur shkruani aplikacione për node.js, duhet të keni parasysh specifikat e programimit orientuar ndaj ngjarjeve, për shembull, në vend që të realizoni 'var result = db.query('select..');' me pritje për përfundimin e punës dhe përpunimin e rezultateve të mëvonshme, 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 tjetër, dhe rezultati i kërkesës do të përpunohen sipas ardhjes së të dhënave.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster