Pieejama servera JavaScript platforma Node.js 18.0

Tika iznācis Node.js 18.0, platforma tīmekļa lietojumu izpildei, kas balstīta uz JavaScript. Node.js 18.0 ir klasificēts kā ilgtspējīgas atbalsta rinda, bet šis statuss tiks piešķirts tikai oktobrī, pēc stabilizācijas procesa. Node.js 18.x atbalsts tiks nodrošināts līdz 2025. gada aprīlim. Iepriekšējā LTS rinda Node.js 16.x tiks atbalstīta līdz 2024. gada aprīlim, bet par gadu agrākā LTS rinda 14.x līdz 2023. gada aprīlim. LTS rindas 12.x atbalsts beigsies 30. aprīlī, bet starpposma rinda Node.js 17.x – 1. jūnijā.

Galvenie uzlabojumi:

  • V8 dzinējs atjaunināts līdz versijai 10.1, kas tiek izmantota Chromium 101. Salīdzinājumā ar Node.js 17.9.0 izdošanu ir pievienota atbalsta iespēja tādām funkcijām kā findLast un findLastIndex, kas palīdz meklēt elementus attiecībā pret masīva galu, kā arī funkcija Intl.supportedValuesOf. Uzlabots API Intl.Locale. Paātrināta klasifikāciju lauku un privāto metožu inicializācija.
  • Pēc noklusējuma ir iekļauts eksperimentālais API fetch(), kas paredzēts resursu ielādei no tīkla. Realizācija balstās uz HTTP/1.1 klienta undici kodu un ir maksimāli tuva līdzīga API, kas pieejams pārlūkprogrammās. Ir nodrošināta arī FormData, Headers, Request un Response interfeisu atbalsts, lai manipulētu ar HTTP pieprasījuma un atbildes galvenēm. const res = await fetch(‘https://nodejs.org/api/documentation.json’); if (res.ok) { const data = await res.json(); console.log(data); }
  • Pievienota eksperimentālā API Web Streams realizācija, kas nodrošina piekļuvi tīklā saņemtajiem datu plūsmām. API ļauj pievienot savus apstrādātājus, lai strādātu ar datiem, kamēr informācija tiek saņemta tīklā, negaidot visa faila lejupielādi. Node.js tagad pieejami objekti, piemēram, ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream un DecompressionStream.
  • Stabilā versijā iekļauts API Blob, kas ļauj iepakot nemainīgus neapstrādātus datus, lai tos droši izmantotu dažādos darba plūsmās.
  • Stabilā stāvoklī ir iekļauts API BroadcastChannel, kas ļauj organizēt izsūtīšanu asinkrīnā režīmā formātā "viens sūtītājs — daudz saņēmēju".
  • Pievienots eksperimentālais modulis node:test, lai izveidotu un palaistu testus JavaScript valodā, kuri atgriež rezultātu TAP (Test Anything Protocol) formātā.
  • Ir nodrošināta gatavu komplektu veidošana Red Hat Enterprise Linux (RHEL) 8 un citiem Glibc 2.28+ balstītiem izplatījumiem, tostarp Debian 10 un Ubuntu 20.04, kā arī macOS 10.15+. Dēļ problēmām ar V8 dzinēja izveidi pagaidām ir apturēta 32 bitu komplektu veidošana Windows sistēmām.
  • Sniedzama eksperimentāla iespēja būvēt Node.js izpildfailu ar lietotāja izvēlētajiem komponentiem, kas tiek inicializēti palaišanas laikā. Lai noteiktu sākotnējos komponentus, konfigurācijas skriptā pievienota opcija "—node-snapshot-main", piemēram, "./configure —node-snapshot-main=marked.js; name node".

Node.js platformu var izmantot gan servera puses tīmekļa lietojumprogrammu atbalstam, gan parasto klientu un serveru tīkla programmu izveidei. Lai paplašinātu Node.js lietojumprogrammu funkcionalitāti, ir sagatavota liela moduļu kolekcija, kas ietver moduļus ar realizāciju 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.

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