Serveripoolne JavaScript Node.js 16.0 väljalase

Välja anti Node.js 16.0, platvorm võrgurakenduste käitamiseks JavaScriptis. Node.js 16.0 on klassifitseeritud pikaajaliseks tugiharuks, kuid see olek määratakse alles oktoobris pärast stabiliseerumist. Node.js 16.0 toetatakse kuni 2023. aasta aprillini. Node.js 14.0 eelmise LTS-i haru hooldus kestab 2023. aasta aprillini ja üle-eelmine LTS-i haru 12.0 2022. aasta aprillini. 10.0 LTS filiaali tugi lõpetatakse 10 päeva pärast.

Peamised täiustused:

  • V8 mootor on värskendatud versioonile 9.0 (Node.js 15 kasutas versiooni 8.6), mis võimaldab rakendada selliseid funktsioone nagu regulaaravaldiste atribuut "indeksid" (sisaldab massiivi vastete rühmade algus- ja lõpupositsioonidega) , Atomicsi meetod Node.js 16 .waitAsync (Atomics.wait asünkroonversioon), tugi märksõna await kasutamiseks tipptaseme moodulites. Funktsioonikutseid on kiirendatud olukordades, kus edastatud argumentide arv ei vasta funktsioonis määratletud parameetritele.
  • Timers Promises API on stabiliseeritud, pakkudes alternatiivset funktsioonide komplekti töötamiseks taimeritega, mis tagastavad Promise objektid väljundina, mis välistab vajaduse kasutada util.promisify(). import { setTimeout } alates 'taimerid/lubadused'; async function run() { ootama setTimeout(5000); console.log('Tere, maailm!'); } run();
  • Lisatud on Web Crypto API eksperimentaalne teostus, mis on loodud põhiliste krüptograafiliste toimingute tegemiseks veebirakenduste kõrval, nagu krüptograafiliste räsidega manipuleerimine, digitaalallkirjade genereerimine ja kontrollimine, andmete kodeerimine ja dekodeerimine erinevate krüpteerimismeetodite abil ning krüptograafiliselt turvalise loomine. juhuslikud arvud. API pakub ka funktsioone võtmete genereerimiseks ja haldamiseks.
  • N-API (API lisandmoodulite arendamiseks) on värskendatud versioonile 8.
  • Üleminek paketihalduri NPM 7.10 uuele versioonile on tehtud.
  • Stabiliseeris AbortControlleri klassi juurutamist, mis põhineb AbortController Web API-l ja võimaldab signaale tühistada valitud lubaduspõhistes API-des.
  • Source Map vormingu kolmanda versiooni tugi, mida kasutatakse genereeritud, töödeldud või pakitud moodulite võrdlemiseks algse lähtekoodiga, on stabiliseerunud.
  • Pärandveebi API-dega ühilduvuse tagamiseks on lisatud meetodid buffer.atob(data) ja buffer.btoa(data).
  • Alanud on M1 ARM-kiibiga varustatud uute Apple'i seadmete koostude moodustamine.
  • Linuxi platvormil on kompilaatori versiooni nõuded tõstetud versioonile GCC 8.3.

Tuletame meelde, et Node.js platvormi saab kasutada nii veebirakenduste serverihoolduseks kui ka tavaliste kliendi- ja serverivõrguprogrammide loomiseks. Node.js-i rakenduste funktsionaalsuse laiendamiseks on koostatud suur moodulite kogu, millest leiate HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serverite ja klientide juurutusega mooduleid, integreerimismooduleid erinevate veebiraamistike, WebSocketi ja Ajaxi töötlejate, DBMS-i pistikute (MySQL, PostgreSQL, SQLite, MongoDB), mallimootorite, CSS-mootorite, krüptoalgoritmide ja autoriseerimissüsteemide (OAuth) juurutuste, XML-i parseritega.

Suure hulga paralleelsete päringute töötlemise tagamiseks kasutab Node.js asünkroonse koodi täitmismudelit, mis põhineb sündmuste mitteblokeerimisel ja tagasihelistajate definitsioonil. Ühenduste multipleksimise toetatud meetodid on epoll, kqueue, /dev/poll ja select. Ühenduse multipleksimiseks kasutatakse libuv teeki, mis on lisandmoodul libevi jaoks Unixi süsteemides ja IOCP jaoks Windowsis. Libeio teeki kasutatakse lõimekogumi loomiseks ja c-ares on integreeritud DNS-päringute tegemiseks mitteblokeerivas režiimis. Kõik blokeerimist põhjustavad süsteemikutsed teostatakse lõimekogumi sees ja seejärel edastavad sarnaselt signaalikäsitlejatele oma töö tulemuse nimetu toru (toru) kaudu tagasi. JavaScripti koodi täitmine on tagatud Google’i poolt välja töötatud V8 mootori kasutamise kaudu (lisaks arendab Microsoft Chakra-Core mootoriga Node.js versiooni).

Oma põhiolemuselt sarnaneb Node.js Perl AnyEvent, Ruby Event Machine, Python Twisted raamistikega ja Tcl sündmuste juurutusega, kuid Node.js-i sündmusesilmus on arendaja eest peidetud ja sarnaneb sündmuste käsitlemisega töötavas veebirakenduses brauseris. Node.js-i rakenduste kirjutamisel peate arvestama näiteks sündmustepõhise programmeerimise spetsiifikaga, selle asemel, et teha "var result = db.query("select..");" töö valmimise ootamisega ja sellele järgneva tulemuste töötlemisega kasutab Node.js asünkroonse täitmise põhimõtet, st. kood teisendatakse "db.query("select..", funktsiooniks (result) {tulemuse töötlemine});", milles juhtimine läheb koheselt edasi edasisele koodile ja päringu tulemust töödeldakse andmete saabudes.

Lisaks võib märkida, et Deno ettevõte, mille Node.js looja asutas järgmise põlvkonna Deno platvormi arendamiseks, sai 4.9 miljonit dollarit investeeringuid. Oma eesmärgi poolest sarnaneb Deno Node.js-iga, kuid püüab kõrvaldada Node.js-i arhitektuuris tehtud kontseptuaalsed vead ja pakkuda kasutajatele turvalisemat keskkonda. Märgitakse, et Deno ärilahendused ehitatakse üles täiesti avatud toodetele ning eraldi tasulise funktsionaalsusega Open Core mudelit peetakse Deno platvormi jaoks vastuvõetamatuks.

Allikas: opennet.ru

Lisa kommentaar