Izdanje JavaScript Node.js 16.0 na strani poslužitelja

Objavljen je Node.js 16.0, platforma za pokretanje mrežnih aplikacija u JavaScriptu. Node.js 16.0 klasificiran je kao grana dugoročne podrške, ali će taj status biti dodijeljen tek u listopadu, nakon stabilizacije. Node.js 16.0 bit će podržan do travnja 2023. Održavanje prethodne LTS grane Node.js 14.0 trajat će do travnja 2023., a pretprošle LTS grane 12.0 do travnja 2022. Podrška za granu 10.0 LTS bit će prekinuta za 10 dana.

Glavna poboljšanja:

  • Motor V8 ažuriran je na verziju 9.0 (Node.js 15 koristio je izdanje 8.6), što omogućuje implementaciju značajki kao što je svojstvo "indeksi" za regularne izraze (uključuje niz s početnim i završnim položajima grupa podudaranja) , Atomics metoda u Node.js 16 .waitAsync (async verzija Atomics.wait), podrška za korištenje ključne riječi await u modulima najviše razine. Pozivi funkcija su ubrzani u situacijama kada broj proslijeđenih argumenata ne odgovara parametrima definiranim u funkciji.
  • Timers Promises API je stabiliziran, pružajući alternativni skup funkcija za rad s mjeračima vremena koji vraćaju Promise objekte kao izlaz, što eliminira potrebu za korištenjem util.promisify(). import { setTimeout } from 'timers/promises'; async funkcija run() { await setTimeout(5000); console.log('Zdravo, svijete!'); } trčanje();
  • Dodana je eksperimentalna implementacija Web Crypto API-ja, dizajniranog za izvođenje osnovnih kriptografskih operacija na strani web aplikacija, kao što je manipuliranje kriptografskim hashovima, generiranje i provjera digitalnih potpisa, kodiranje i dekodiranje podataka korištenjem različitih metoda šifriranja i generiranje kriptografski sigurnih slučajni brojevi. API također nudi funkcije za generiranje i upravljanje ključevima.
  • N-API (API za razvoj dodataka) je ažuriran na verziju 8.
  • Izvršen je prijelaz na novo izdanje upravitelja paketa NPM 7.10.
  • Stabilizirana je implementacija klase AbortController, koja se temelji na AbortController Web API-ju i omogućuje otkazivanje signala u odabranim API-jima temeljenim na Promise-u.
  • Podrška za treću verziju formata Source Map, koja se koristi za usporedbu generiranih, obrađenih ili pakiranih modula s izvornim izvornim kodom, stabilizirana je.
  • Radi kompatibilnosti s naslijeđenim web API-jima, dodane su metode buffer.atob(data) i buffer.btoa(data).
  • Započelo je formiranje sklopova za nove Apple uređaje opremljene M1 ARM čipom.
  • Na Linux platformi zahtjevi za verzijom prevoditelja podignuti su na GCC 8.3.

Podsjetimo se da se Node.js platforma može koristiti i za poslužiteljsku podršku web aplikacija i za kreiranje običnih klijentskih i poslužiteljskih mrežnih programa. Za proširenje funkcionalnosti aplikacija za Node.js pripremljena je velika zbirka modula u kojoj možete pronaći module s implementacijom HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 poslužitelja i klijenata, module za integraciju s raznim web okvirima, WebSocket i Ajax rukovateljima, konektorima za DBMS (MySQL, PostgreSQL, SQLite, MongoDB), predlošcima, CSS motorima, implementacijama kriptografskih algoritama i autorizacijskim sustavima (OAuth), XML parserima.

Kako bi se osigurala obrada velikog broja paralelnih zahtjeva, Node.js koristi model izvršavanja asinkronog koda koji se temelji na rukovanju događajima bez blokiranja i definiciji rukovatelja povratnim pozivom. Podržane metode za multipleksiranje veza su epoll, kqueue, /dev/poll i select. Za multipleksiranje veze koristi se biblioteka libuv, koja je dodatak za libev na Unix sustavima i IOCP na Windowsima. Biblioteka libeio koristi se za stvaranje skupa niti, a c-ares je integriran za izvođenje DNS upita u načinu rada bez blokiranja. Svi sistemski pozivi koji uzrokuju blokiranje izvršavaju se unutar skupa niti i zatim, poput rukovatelja signalima, prenose rezultat svog rada natrag kroz neimenovanu cijev (pipe). Izvršenje JavaScript koda omogućeno je korištenjem V8 motora koji je razvio Google (pored toga, Microsoft razvija verziju Node.js s Chakra-Core motorom).

U svojoj srži, Node.js je sličan Perl AnyEvent, Ruby Event Machine, Python Twisted okvirima i Tcl implementaciji događaja, ali petlja događaja u Node.js skrivena je od programera i nalikuje rukovanju događajima u pokrenutoj web aplikaciji u pregledniku. Kada pišete aplikacije za node.js, trebate uzeti u obzir specifičnosti programiranja vođenog događajima, na primjer, umjesto da radite "var result = db.query("select..");" uz čekanje završetka rada i naknadnu obradu rezultata, Node.js koristi princip asinkronog izvođenja, tj. kod se transformira u "db.query("select..", function (result) {result processing});", u kojem će kontrola trenutno prijeći na daljnji kod, a rezultat upita će se obrađivati ​​kako podaci stignu.

Osim toga, može se primijetiti da je tvrtka Deno, koju je osnovao tvorac Node.js za razvoj platforme Deno sljedeće generacije, primila 4.9 milijuna dolara ulaganja. Po svojoj namjeni, Deno je sličan Node.js, ali pokušava eliminirati konceptualne pogreške nastale u Node.js arhitekturi i pružiti korisnicima sigurnije okruženje. Napominje se da će poslovna rješenja tvrtke Deno biti izgrađena na potpuno otvorenim proizvodima, a model Open Core s zasebnom plaćenom funkcionalnošću smatra se neprihvatljivim za platformu Deno.

Izvor: opennet.ru

Dodajte komentar