Strežniška izdaja JavaScript Node.js 16.0

Izdana je bila Node.js 16.0, platforma za izvajanje omrežnih aplikacij v JavaScriptu. Node.js 16.0 je razvrščen kot veja dolgoročne podpore, vendar bo ta status dodeljen šele oktobra, po stabilizaciji. Node.js 16.0 bo podprt do aprila 2023. Vzdrževanje prejšnje veje LTS Node.js 14.0 bo trajalo do aprila 2023, predlanske veje LTS 12.0 pa do aprila 2022. Podpora za podružnico 10.0 LTS bo ukinjena čez 10 dni.

Glavne izboljšave:

  • Motor V8 je bil posodobljen na različico 9.0 (Node.js 15 je uporabljal izdajo 8.6), ki omogoča implementacijo funkcij, kot je lastnost "indeksov" za regularne izraze (vključuje matriko z začetnimi in končnimi položaji skupin ujemanj) , metoda Atomics v Node.js 16 .waitAsync (asinhronska različica Atomics.wait), podpora za uporabo ključne besede await v modulih najvišje ravni. Funkcijski klici so bili pospešeni v primerih, ko število posredovanih argumentov ne ustreza parametrom, definiranim v funkciji.
  • API za obljube časovnikov je bil stabiliziran in zagotavlja alternativni nabor funkcij za delo s časovniki, ki vrnejo objekte obljube kot izhod, kar odpravlja potrebo po uporabi util.promisify(). import { setTimeout } from 'timers/promises'; async funkcija run() { await setTimeout(5000); console.log('Pozdravljen, svet!'); } run();
  • Dodana je bila eksperimentalna izvedba API-ja Web Crypto, zasnovana za izvajanje osnovnih kriptografskih operacij na strani spletnih aplikacij, kot je manipuliranje s kriptografskimi zgoščenimi vrednostmi, ustvarjanje in preverjanje digitalnih podpisov, kodiranje in dekodiranje podatkov z različnimi metodami šifriranja ter ustvarjanje kriptografsko varnega naključna števila. API ponuja tudi funkcije za generiranje in upravljanje ključev.
  • N-API (API za razvoj dodatkov) je posodobljen na različico 8.
  • Izveden je bil prehod na novo izdajo upravljalnika paketov NPM 7.10.
  • Stabilizirano izvajanje razreda AbortController, ki temelji na spletnem API-ju AbortController in omogoča preklic signalov v izbranih API-jih, ki temeljijo na Promise.
  • Podpora za tretjo različico formata Source Map, ki se uporablja za primerjavo ustvarjenih, obdelanih ali pakiranih modulov z izvirno izvorno kodo, je bila stabilizirana.
  • Za združljivost s podedovanimi spletnimi API-ji sta bili dodani metodi buffer.atob(data) in buffer.btoa(data).
  • Začelo se je oblikovanje sklopov za nove naprave Apple, opremljene s čipom M1 ARM.
  • Na platformi Linux so bile zahteve glede različice prevajalnika povišane na GCC 8.3.

Spomnimo se, da se lahko platforma Node.js uporablja tako za strežniško vzdrževanje spletnih aplikacij kot za ustvarjanje navadnih odjemalskih in strežniških omrežnih programov. Za razširitev funkcionalnosti aplikacij za Node.js je bila pripravljena velika zbirka modulov, v kateri najdete module z implementacijo HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 strežnikov in odjemalcev, module za integracijo z različnimi spletnimi okviri, upravljalniki WebSocket in Ajax, konektorji DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mehanizmi za predloge, motorji CSS, implementacijami kripto algoritmov in avtorizacijskih sistemov (OAuth), razčlenjevalniki XML.

Da bi zagotovil obdelavo velikega števila vzporednih zahtev, Node.js uporablja model izvajanja asinhrone kode, ki temelji na neblokirni obravnavi dogodkov in definiciji obdelovalcev povratnih klicev. Podprte metode za multipleksiranje povezav so epoll, kqueue, /dev/poll in select. Za multipleksiranje povezav se uporablja knjižnica libuv, ki je dodatek za libev v sistemih Unix in IOCP v sistemu Windows. Knjižnica libeio se uporablja za ustvarjanje skupine niti, c-ares pa je integriran za izvajanje poizvedb DNS v načinu brez blokiranja. Vsi sistemski klici, ki povzročijo blokado, se izvedejo znotraj področja niti in nato, kot upravljalci signalov, prenesejo rezultat svojega dela nazaj skozi neimenovano cev (pipe). Izvajanje kode JavaScript je zagotovljeno z uporabo motorja V8, ki ga je razvil Google (poleg tega Microsoft razvija različico Node.js z motorjem Chakra-Core).

V svojem jedru je Node.js podoben ogrodjem Perl AnyEvent, Ruby Event Machine, Python Twisted in implementaciji dogodkov Tcl, vendar je zanka dogodkov v Node.js skrita pred razvijalcem in je podobna obravnavanju dogodkov v delujoči spletni aplikaciji v brskalniku. Ko pišete aplikacije za node.js, morate na primer upoštevati posebnosti programiranja, ki temelji na dogodkih, namesto da naredite "var result = db.query("select..");" s čakanjem na zaključek dela in kasnejšo obdelavo rezultatov Node.js uporablja princip asinhronega izvajanja, tj. koda se preoblikuje v "db.query("select..", function (result) {result processing});", v katerem bo nadzor takoj prešel na nadaljnjo kodo, rezultat poizvedbe pa bo obdelan, ko podatki prispejo.

Poleg tega je mogoče omeniti, da je podjetje Deno, ki ga je ustanovil ustvarjalec Node.js za razvoj platforme Deno naslednje generacije, prejelo 4.9 milijona dolarjev naložb. Po svojem namenu je Deno podoben Node.js, vendar poskuša odpraviti konceptualne napake v arhitekturi Node.js in uporabnikom zagotoviti bolj varno okolje. Opozoriti je treba, da bodo poslovne rešitve podjetja Deno zgrajene na popolnoma odprtih izdelkih, model Open Core z ločeno plačljivo funkcionalnostjo pa je za platformo Deno nesprejemljiv.

Vir: opennet.ru

Dodaj komentar