Servera puses JavaScript Node.js 14.0 laidiens

notika atbrīvot Node.js 14.0,platformas tīkla lietojumprogrammu palaišanai JavaScript. Node.js 14.0 ir ilgtermiņa atbalsta nozare, taču šis statuss tiks piešķirts tikai oktobrī pēc stabilizācijas. Node.js 14.0 tiks atbalstīts jāveic līdz 2023. gada aprīlim. Node.js 12.0 iepriekšējās LTS filiāles apkope ilgs līdz 2022. gada aprīlim, bet gadu aizpēdējā LTS 10.0 – līdz 2021. gada aprīlim. Atbalsts 13.x iestudējuma filiālei beigsies šā gada jūnijā.

Galvenais uzlabojumi:

  • Spēja ģenerēt lidojuma laikā vai noteiktu notikumu gadījumā ir stabilizēta diagnostikas ziņojumi, kas parāda notikumus, kas palīdz diagnosticēt tādas problēmas kā avārijas, veiktspējas pasliktināšanās, atmiņas noplūdes, liela CPU noslodze, neparedzētas kļūdas utt.
  • Pievienots eksperimentāls API atbalsts Asinhronā vietējā krātuve ar AsyncLocalStorage klases ieviešanu, ko var izmantot, lai izveidotu asinhronu stāvokli ar apstrādātājiem, pamatojoties uz atzvanīšanas zvaniem un solījumiem. AsyncLocalStorage ļauj saglabāt datus, kamēr tiek apstrādāts tīmekļa pieprasījums, atgādinot pavedienu lokālo krātuvi citās valodās.
  • Ielādes laikā tika noņemts brīdinājuma ziņojums par eksperimentālo funkciju moduļi ECMAScript 6 savienots un eksportēts, izmantojot importa un eksporta paziņojumus. Tajā pašā laikā pati ESM moduļu ieviešana paliek eksperimentāla.
  • V8 dzinējs atjaunināts uz versiju 8.1 (1, 2, 3), kas ietver jaunas veiktspējas optimizācijas un funkcijas, piemēram, jauno loģiskās savienošanas operatoru "???" (atgriež labo operandu, ja kreisais operands ir NULL vai nav definēts, un otrādi), operators "?." visas rekvizītu vai izsaukumu ķēdes vienreizējai pārbaudei (piemēram, “db?.user?.name?.length” bez iepriekšējām pārbaudēm), Intl.DisplayName metodi lokalizētu nosaukumu iegūšanai utt.
  • Tika veikta Streams API pārskatīšana, kuras mērķis bija uzlabot Streams API konsekvenci un novērst atšķirības Node.js pamata daļu darbībā. Piemēram, http.OutgoingMessage darbība ir tuvu straumei.Writable, un net.Socket ir līdzīga straume.Duplex. AutoDestroy opcija pēc noklusējuma ir iestatīta uz "true", kas nozīmē "_destroy" izsaukšanu pēc pabeigšanas.
  • Pievienots eksperimentāls API atbalsts BIJU ES (WebAssembly sistēmas interfeiss), nodrošinot programmatūras saskarnes tiešai mijiedarbībai ar operētājsistēmu (POSIX API darbam ar failiem, ligzdām utt.).
  • Paaugstinātas prasības attiecībā uz minimālās versijas kompilatori un platformas: macOS 10.13 (High Sierra), GCC 6, Windows jaunāka versija 7/2008R2.

Atgādināsim, ka Node.js platformu var izmantot gan Web aplikāciju serveru atbalstam, gan parastu klientu un serveru tīkla programmu veidošanai. Lai paplašinātu Node.js lietojumprogrammu funkcionalitāti, liels skaits moduļu kolekcija, kurā var atrast moduļus ar serveru un klientu ieviešanu HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduļus integrācijai ar dažādiem tīmekļa ietvariem, WebSocket un Ajax apdarinātājus, savienotājus ar DBVS (MySQL, PostgreSQL, SQLite , MongoDB), veidņu dzinēji, CSS dzinēji, kriptogrāfijas algoritmu un autorizācijas sistēmu (OAuth) ieviešana, XML parsētāji.

Lai apstrādātu lielu skaitu paralēlu pieprasījumu, Node.js izmanto asinhronā koda izpildes modeli, kura pamatā ir notikumu nebloķējoša apstrāde un atzvanīšanas apstrādātāju noteikšana. Atbalstītās savienojumu multipleksēšanas metodes ietver epoll, kqueue, /dev/poll un select. Bibliotēka tiek izmantota savienojumu multipleksēšanai libuv, kas ir virsbūve libevs Unix sistēmās un IOCP sistēmā Windows. Bibliotēka tiek izmantota, lai izveidotu pavedienu pūlu libeio, DNS vaicājumu veikšanai nebloķējošā režīmā ir integrēts c-ari. Visi sistēmas izsaukumi, kas izraisa bloķēšanu, tiek izpildīti pavedienu pūlā un pēc tam, tāpat kā signālu apstrādātāji, nodod sava darba rezultātu atpakaļ caur nenosauktu cauruli. JavaScript koda izpilde tiek nodrošināta, izmantojot Google izstrādāto dzinēju V8 (Turklāt Microsoft izstrādā Node.js versiju ar Chakra-Core dzinēju).

Savā pamatā Node.js ir līdzīgs ietvariem Perl AnyEvent, Rubīna notikumu mašīna, Python Twisted и īstenošana notikumi Tcl, bet notikumu cilpa Node.js ir paslēpta no izstrādātāja un atgādina notikumu apstrādi tīmekļa lietojumprogrammā, kas darbojas pārlūkprogrammā. Rakstot lietojumprogrammas node.js, ir jāņem vērā notikumu virzītās programmēšanas specifika, piemēram, nevis jādara “var result = db.query(“select..”);” ar darba pabeigšanas gaidīšanu un sekojošu rezultātu apstrādi Node.js izmanto asinhronās izpildes principu, t.i. kods tiek pārveidots par “db.query(“select..”, funkcija (rezultāts) {rezultāta apstrāde});”, kurā vadība nekavējoties tiks nodota tālākam kodam, un vaicājuma rezultāts tiks apstrādāts līdz ar datu saņemšanu. .

Avots: opennet.ru

Pievieno komentāru