Node.js 13.0 serveri JavaScript platvormi väljalase

Saadaval väljalase Node.js 13.0, platvormid JavaScripti põhjalike võrgu rakenduste käitamiseks. Samal ajal viidi stabiliseerimine varasemast Node.js 12.x harust lõpule, mis on viidud pikaajalise toe (LTS) väljaannete kategooriasse, mille jaoks uuendusi antakse välja 4 aasta jooksul. Eelmise LTS haru Node.js 10.0 toetamine kestab kuni aprillini 2021, ja üle-eelmise LTS haru 8.0 kuni jaanuarini 2020.

Peamised parandused:

  • V8 mootori versioon on uuendatud versioonini 7.8, kus on kasutusele võetud uued jõudluse optimeerimise meetodid, parendatud objektide destruktureerimist, vähendatud mälu tarbimist ja lühendatud WebAssembly täitmise ettevalmistamise aega;
  • Täielik rahvusvahelistamise ja Unicode'i tugi on vaikimisi lubatud, tuginedes ICU (International Components for Unicode) raamatukogudele, mis võimaldab arendajatel kirjutada koodi, mis toetab erinevate keelte ja lokaliseerimisega töötamist. Moodul full-icu on nüüd vaikimisi installitud;
  • API on stabiliseeritud Workers Threads, mis võimaldab mitme lõimega sündmuste töötlemise tsüklite (event loop) loomiseks. Teostus põhineb moodulil worker_threads, mis võimaldab JavaScripti koodi käitada mitmes paralleelses lõimes. Workers Threads API stabiilne tugi on samuti tagatud tagasi LTS haru Node.js 12.x;
  • Platvormide nõuded on tõusutavad. Nüüd on vajalik kokku panna vähemalt macOS 10.11 (Xcode 10 vajalik), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008; on vajalik Parandatud Python 3 tugi. Kui süsteemis on olemas nii Python 2 kui Python 3, kasutatakse endiselt Python 2, kuid nüüd on lisatud võimalus koostada ainult Python 3-ga;
  • Vana HTTP-parseri rakendus on eemaldatud („—http-parser=legacy”). Eemaldatud või vananenud nimekirja viidud kutsed ja omadused FSWatcher.prototype.start(), ChildProcess._channel, meetod open() ReadStream ja WriteStream objektides, request.connection, response.connection, module.createRequireFromPath();
  • Järgneb
  • värskendus 13.0.1, kus on kiiresti parandatud mitu viga. Sealhulgas on lahendatud probleem npm 6.12.0 hoiatustega, mis on seotud toetust mitte saavutanud versiooniga. ilmus Tuletame meelde, et Node.js platvormi saab kasutada nii veebirakenduste serveriteenindamiseks kui ka tavapäraste kliendi- ja serverivõrgurahenduste loomiseks. Node.js rakenduste funktsionaalsuse laiendamiseks on koostatud suur

moodulite kogu moodulite kollektsioon, kus on saadaval moodulid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serverite ja klientide rakenduste, integratsioonimoodulite erinevate veebiraamistikega, WebSocketi ja Ajaxi töötlejate, andmebaaside (MySQL, PostgreSQL, SQLite, MongoDB) ühenduste, mallide, CSS-mootorite, krüptoalgoritmide ja autoriseerimissüsteemide (OAuth), XML-parsirite jaoks.

Suurte paralleelsete päringute töötlemise tagamiseks kasutab Node.js asünkroonset koodi käivitamise mudelit, mis põhineb sündmustel mittetõkestavas režiimis ja tagasiside töötlejate määramisel. Ühenduste mitmekordistamiseks toetatakse meetodeid nagu epoll, kqueue, /dev/poll ja select. Ühenduste mitmekordistamiseks kasutatakse raamatukogu libuv, mis on süsteemide Unix ja Windows'i IOCP üleehitus. libev Thread-pool'i loomiseks kasutatakse raamatukogu libeio, et teostada DNS-päringuid mittetõkestavas režiimis on integreeritud c-ares. Kõik süsteemikutsed, mis põhjustavad blokeerimist, tehakse nišipõhistes voogudes ja seejärel, nagu ka signaalide töötlejad, edastavad oma töö tulemuse tagasi läbi nimetamata kanali (pipe). JavaScripti koodi täitmine tagatakse Google’i välja töötatud mootori kaudu. V8 (lisaks arendab Microsoft Node.js-i versiooni mootoriga Chakra-Core).

Node.js on oma olemuselt sarnane raamistikule Perl AnyEvent, Ruby Event Machine, Python Twisted ja rakendamise sündmustele Tcl-s, kuid Node.jsi sündmuste töötlemise tsükkel (event loop) on arendajalt varjatud ja sarnaneb brauseris töötava veebi rakenduse sündmuste töötlemisega. Node.js-i rakenduste kirjutamisel tuleb arvestada sündmustele orienteeritud programmeerimise spetsiifikat: näiteks, asemel, et teostada «var result = db.query(«select..»);» tulemuse lõpetamise ootamiseks ja sellele järgnevaks töötlemiseks, kasutab Node.js asünkroonse täitmise põhimõtet, see tähendab, et kood muudetakse «db.query(«select..», function (result) {tulemuse töötlemine});», mille puhul kontroll läheb koheselt edasi järgmisele koodile ja päringu tulemust töödeldakse andmete saabumise ajal.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster