Node.js 16.0 serveru JavaScript platformas iznākums

Tika notika Node.js 16.0, JavaScript tīmekļa lietojumprogrammu izpildes platforma. Node.js 16.0 ir iekļauts ilgas atbalsta filiālēs, taču šis statuss tiks piešķirts tikai oktobrī, pēc stabilizācijas veikšanas. Node.js 16.0 atbalsts tiks nodrošināts līdz 2023. gada aprīlim. Iepriekšējās LTS filiāles Node.js 14.0 atbalsts ilgs līdz 2023. gada aprīlim, bet pirms tam esošās LTS filiāles 12.0 atbalsts ilgs līdz 2022. gada aprīlim. LTS filiāles 10.0 atbalsts tiks pārtraukts pēc 10 dienām.

Galvenie uzlabojumi:

  • V8 dzinējs atjaunots līdz 9.0 versijai (Node.js 15 tika izmantota 8.6 versija), kas ļāva Node.js 16 ieviest tādas iespējas kā īpašums „indices” regulārajiem izteiksmēm (iekļauj masīvu ar sākuma un beigu pozīcijām grupu sakritēm), Atomics.waitAsync metode (asinhronā versija Atomics.wait), kā arī atbalsts await atslēgas vārda izmantošanai moduli augšējā līmenī. Tika paātrināta funkciju izsaukšana, kad nodoto argumentu skaits neatbilst funkcijā definētajiem parametriem.
  • Stabilizēts Timers Promises API, kas nodrošina alternatīvu funkciju kopumu darbam ar taimeriem, kas atgriež Promise objektus, kas ļauj iztikt bez util.promisify(). import { setTimeout } from ‘timers/promises’; async function run() { await setTimeout(5000); console.log(‘Hello, World!’); } run();
  • Pievienota eksperimentālā Web Crypto API īstenošana, kas paredzēta pamata kriptogrāfisko operāciju veikšanai tīmekļa lietojumprogrammās, piemēram, manipulācija ar kriptogrāfiskajiem hašiem, digitālo parakstu ģenerēšana un pārbaude, datu kodēšana un dekodēšana, izmantojot dažādas šifrēšanas metodes, un kriptogrāfiski drošu nejaušu skaitļu ģenerēšana. API ietver arī funkcijas atslēgu ģenerēšanai un pārvaldībai.
  • N-API (paplašinājumu izstrādes API) atjaunots līdz 8. versijai.
  • Pabeigts pārejas process uz jauno NPM 7.10 versiju.
  • Stabilizēta AbortController klases īstenošana, kas balstās uz Web API AbortController un ļauj atcelt signālus izvēlētajos Promise pamata API.
  • Stabilizēts trešās versijas Source Map formāta atbalsts, kas tiek izmantots, lai sasaistītu ģenerētos, apstrādātos vai iepakotos moduļus ar oriģinālo avota kodu.
  • Saderībai ar novecojušām Web API pievienoti buffer.atob(data) un buffer.btoa(data) metodes.
  • Sākuši veidot izstrādājumus jauniem Apple ierīcēm, kas aprīkotas ar ARM M1 mikroshēmu.
  • Linux platformā prasības attiecībā uz kompilatora versiju ir paaugstinātas līdz GCC 8.3.

Atgādinām, ka Node.js platforma var tikt izmantota gan tīmekļa lietojumprogrammu serveru atbalstam, gan parasto klientu un serveru tīmekļa programmu izstrādei. Lai paplašinātu lietojumprogrammu funkcionalitāti Node.js, ir sagatavota liela moduļu kolekcija, kurā var atrast moduļus ar realizācijām serveriem un HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klientiem, moduļiem integrēšanai ar dažādiem tīmekļa ietvariem, WebSocket un Ajax apstrādātājiem, datubāzu (MySQL, PostgreSQL, SQLite, MongoDB) savienotājiem, veidņu motorus, CSS dzinējus, kriptovalūtu algoritmu realizācijas un autorizācijas sistēmas (OAuth), XML parsētājus.

Lai nodrošinātu lielā skaita vienlaicīgu pieprasījumu apstrādi, Node.js izmanto asynchrono koda palaišanas modeli, kas balstās uz notikumu apstrādi bez bloķēšanas un callback-handler definēšanu. Savienojumu multiplexēšanai tiek atbalstīti tādi paņēmieni kā epoll, kqueue, /dev/poll un select. Savienojumu multiplexēšanai tiek izmantota bibliotēka libuv, kas ir virs libev Unix sistēmās un IOCP Windows. Lai izveidotu pavedienu grupu (thread pool), tiek izmantota bibliotēka libeio, bet DNS pieprasījumu izpilde bez bloķēšanas ir integrēta ar c-ares. Visi sistēmas izsaukumi, kas izraisa bloķēšanu, tiek veikti pavedienu grupā, un, tāpat kā signālu apstrādātāji, tie atgriež rezultātu caur nenosaukto cauruli (pipe). JavaScript koda izpilde tiek nodrošināta, izmantojot Google izstrādātā V8 dzinēja iesaisti (papildus Microsoft attīsta Node.js versiju ar Chakra-Core dzinēju).

Savā būtībā Node.js ir līdzīgs Perl AnyEvent, Ruby Event Machine, Python Twisted un Tcl notikumu ieviešanai, taču notikumu apstrādes cikls (event loop) Node.js ir slēpts no izstrādātāja un atgādina notikumu apstrādi web lietojumprogrammā, kas darbojas pārlūkprogrammā. Izstrādājot lietojumprogrammas node.js, jāņem vērā notikumu orientētas programmēšanas īpatnības, piemēram, vietā, lai veiktu „var result = db.query(„select..“);” ar gaidīšanu rezultātu apstrādei, Node.js izmanto asinkronās izpildes principu, t.i., kodu pārveido „db.query(„select..“, function (result) {rezultāta apstrāde});”, kur kontrole nekavējoties pāries uz sekojošo kodu, un pieprasījuma rezultāts tiks apstrādāts, kad dati tiks saņemti.

Papildus jāatzīmē, ka uzņēmums Deno, kuru dibinājis Node.js veidotājs, lai attīstītu nākamās paaudzes platformu Deno, ir saņēmis 4.9 miljonus dolāru investīciju. Deno pēc savas būtības atgādina Node.js, taču cenšas novērst konceptuālās kļūdas, kas pieļautas Node.js arhitektūrā, un nodrošināt lietotājiem drošāku vidi. Tiek norādīts, ka Deno biznesa risinājumi tiks balstīti uz pilnībā atvērtām produktiem, savukārt Open Core modelis ar atsevišķu maksas funkcionalitātes izdalīšanu tiek uzskatīts par nepieņemamu Deno platformai.

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster