Izdanje JavaScript platforme na strani servera Node.js 14.0

održan pustiti Node.js 14.0,platforme za pokretanje mrežnih aplikacija u JavaScript-u. Node.js 14.0 je grana za dugoročnu podršku, ali ovaj status će biti dodijeljen tek u oktobru, nakon stabilizacije. Node.js 14.0 će biti podržan biti sprovedena do aprila 2023. Održavanje prethodne LTS grane Node.js 12.0 trajaće do aprila 2022. godine, a pretprošle LTS grane 10.0 do aprila 2021. godine. Podrška za 13.x staging granu će se završiti u junu ove godine.

Glavni poboljšanja:

  • Sposobnost generiranja u hodu ili po nastanku određenih događaja je stabilizirana dijagnostičke izvještaje, koji prikazuje događaje koji pomažu u dijagnosticiranju problema kao što su rušenja, degradacija performansi, curenje memorije, veliko opterećenje CPU-a, neočekivani izlaz greške itd.
  • Dodata eksperimentalna podrška za API Async Local Storage sa implementacijom klase AsyncLocalStorage, koja se može koristiti za kreiranje asinhronog stanja sa rukovaocima zasnovanim na povratnim pozivima i obećanjima. AsyncLocalStorage vam omogućava pohranjivanje podataka dok se web zahtjev obrađuje, što podsjeća na lokalnu pohranu niti na drugim jezicima.
  • Uklonjena poruka upozorenja o eksperimentalnoj funkciji prilikom učitavanja moduli ECMAScript 6 povezani i izvezeni koristeći uvozne i izvozne izjave. Istovremeno, sama implementacija ESM modula ostaje eksperimentalna.
  • V8 motor ažuriran na verziju 8.1 (1, 2, 3), koji uključuje nove optimizacije performansi i karakteristike kao što je novi operator logičke konkatenacije "??" (vraća desni operand ako je lijevi operand NULL ili nedefiniran, i obrnuto), operator "?." za jednokratnu provjeru cijelog lanca svojstava ili poziva (na primjer, “db?.user?.name?.length” bez preliminarnih provjera), metoda Intl.DisplayName za dobivanje lokaliziranih imena, itd.
  • Izvršena je revizija Streams API-ja sa ciljem da se poboljša konzistentnost Streams API-ja i eliminišu razlike u ponašanju osnovnih delova Node.js-a. Na primjer, ponašanje http.OutgoingMessage je blisko stream.Writable, a net.Socket je slično stream.Duplexu. Opcija autoDestroy je po defaultu postavljena na "true", što znači pozivanje "_destroy" po završetku.
  • Dodata eksperimentalna podrška za API WASI (WebAssembly System Interface), pružanje softverskih interfejsa za direktnu interakciju sa operativnim sistemom (POSIX API za rad sa fajlovima, soketima, itd.).
  • Povećani zahtjevi za minimalne verzije kompajleri i platforme: macOS 10.13 (High Sierra), GCC 6, Windows noviji 7/2008R2.

Podsjetimo da se platforma Node.js može koristiti i za podršku web aplikacija na strani servera i za kreiranje običnih klijentskih i serverskih mrežnih programa. Za proširenje funkcionalnosti aplikacija za Node.js, veliki broj zbirka modula, u kojem se mogu pronaći moduli sa implementacijom servera i klijenata HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli za integraciju sa raznim web okvirima, WebSocket i Ajax rukovaoci, konektori za DBMS (MySQL, PostgreSQL, SQLite , MongoDB), šablonske mašine, CSS mašine, implementacije kriptografskih algoritama i sistema autorizacije (OAuth), XML parseri.

Za rukovanje velikim brojem paralelnih zahtjeva, Node.js koristi model izvršavanja asinhronog koda baziran na neblokirajućoj obradi događaja i definiranju rukovatelja povratnim pozivima. Podržane metode za multipleksiranje veza uključuju epoll, kqueue, /dev/poll i select. Biblioteka se koristi za multipleksiranje veza libuv, što je nadgradnja preko libev na Unix sistemima i preko IOCP na Windows. Biblioteka se koristi za kreiranje skupa niti libeio, za obavljanje DNS upita u neblokirajućem modu je integriran c-are. Svi sistemski pozivi koji uzrokuju blokiranje izvode se unutar spremišta niti, a zatim, poput rukovatelja signalom, prosljeđuju rezultat svog rada natrag kroz neimenovanu cijev. Izvršenje JavaScript koda je osigurano korištenjem motora koji je razvio Google V8 (Pored toga, Microsoft razvija verziju Node.js sa Chakra-Core motorom).

U svojoj srži, Node.js je sličan okvirima Perl AnyEvent, Ruby Event Machine, Python Twisted и implementacija događaje u Tcl-u, ali petlja događaja u Node.js je skrivena od programera i nalikuje rukovanju događajima u web aplikaciji koja radi u pretraživaču. Prilikom pisanja aplikacija za node.js, potrebno je uzeti u obzir specifičnosti programiranja vođenog događajima, na primjer, umjesto da radite “var result = db.query(“select..”);” sa čekanjem završetka rada i naknadnom obradom rezultata, Node.js koristi princip asinhronog izvršavanja, tj. kod se transformira u “db.query(“select..”, function (result) {result processing});”, u kojem će kontrola odmah preći na daljnji kod, a rezultat upita će se obraditi kako podaci stignu. .

izvor: opennet.ru

Dodajte komentar