Ilmus Node.js 16.0, veebirakenduste kÀitamiseks mÔeldud JavaScripti platvorm. Node.js 16.0 on mÀÀratud pikaajalise toe haruks, kuid see staatus antakse alles oktoobris pÀrast stabiliseerimist. Node.js 16.0 toetamist jÀtkatakse aprillini 2023. Eelmise LTS haru Node.js 14.0 toetamist jÀtkatakse aprillini 2023, ja eelmisel LTS harul 12.0 kuni aprillini 2022. LTS haru 10.0 toetamist lÔpetatakse 10 pÀeva pÀrast.
Peamised tÀiustused:
- V8 mootor on uuendatud versioonile 9.0 (Node.js 15-s kasutati versiooni 8.6), mis vĂ”imaldas Node.js 16-s rakendada selliseid funktsioone nagu regulaaravaldiste «indices» omadus (mis sisaldab massiivi, kus on sobivuste rĂŒhmade algus- ja lĂ”pp-punktid), meetod Atomics.waitAsync (asĂŒnkroonne versioon Atomics.wait) ning toe andmist await mĂ€rksĂ”na kasutamiseks tippmoodulites. Funktsioonide kutsumise kiirus on suurenenud olukordades, kus edastatud argumentide arv ei vasta funktsioonis mÀÀratud parameetritele.
- Stabiliseeritud API Timers Promises, mis pakub alternatiivset funktsioonide kogumit, et töötada ajastuse kallal, tagastades Promise objekte, mis vĂ”imaldab vĂ€ltida util.promisify() kasutamist. import { setTimeout } from âtimers/promisesâ; async function run() { await setTimeout(5000); console.log(âHello, World!â); } run();
- Lisatud eksperimenteerimise tasemel API Web Crypto rakendus, mis on ette nĂ€htud krĂŒptograafiliste operatsioonide teostamiseks veebirakendustes, nagu krĂŒptograafiliste hash'ide kĂ€sitlemine, digitaalseid allkirju genereerimine ja kontrollimine, andmete kodeerimine ning dekodeerimine erinevate krĂŒpteerimismeetodite abil, krĂŒptograafiliselt usaldusvÀÀrsete juhuslike numbrite genereerimine. API-s on ka funktsioonid vĂ”tmete genereerimiseks ja haldamiseks.
- N-API (tarkvaraplatvormide arendamise API) on uuendatud versioonile 8.
- Tegemist on jÀÀdava ĂŒleminekuga pakendihalduri NPM 7.10 uuele vĂ€ljaandele.
- Stabiliseeritud AbortController klassi rakendamine, mis pĂ”hineb Web API AbortController'il ja vĂ”imaldab tĂŒhistada signaale, mis on valitud Promise-pĂ”histe API-de juures.
- Stabiliseeritud kolmanda versiooni toega Source Map formaadi, mida kasutatakse genereeritud, töödeldud vÔi pakitud moodulite originaalse lÀhtekoodiga seostamiseks.
- Tagamaks ĂŒhilduvust vananenud Web API-dega on lisatud meetodid buffer.atob(data) ja buffer.btoa(data).
- Alustasime Apple'i uute seadmete, mis on varustatud ARM M1 protsessoriga, kogumist.
- Linuxi platvormil on kompilatori versiooni nÔuded tÔstetud GCC 8.3-ni.
Tuletame meelde, et Node.js platvormi saab kasutada veebirakenduste serveri toe pakkumiseks, samuti tavapĂ€raste klientide ja serveri vĂ”rguprogrammide loomiseks. Node.js rakenduste funktsionaalsuse laiendamiseks on ette valmistatud suur hulk mooduleid, mis sisaldavad mooduleid rakenduste rakendamiseks. serverid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 kliente, mooduleid erinevate veebiraamistike integreerimiseks, WebSocket ja Ajax töötlejat, andmebaasi ĂŒhendusi (MySQL, PostgreSQL, SQLite, MongoDB), malligeneraatorid, CSS-mootorid, krĂŒptoalgoritmide rakendused ja autentimissĂŒsteemid (OAuth), XML-parsereid.
Suurte paralleelsete pĂ€ringute töötlemise tagamiseks kasutab Node.js asĂŒnkroonset koodikĂ€ivitamise mudelit, mis pĂ”hineb mitteblokeerival sĂŒndmustöötlusel ja tagasiside töötlejate mÀÀramisel. Ăhenduste multiplexerimise meetoditeks on sellised meetodid nagu epoll, kqueue, /dev/poll ja select. Ăhenduste multiplexerimiseks kasutatakse libuv teeki, mis on libevi peal Unix-sĂŒsteemides ja IOCP peal Windowsis. Tööde vĂ”rgu loomise jaoks kasutatakse libeio teeki, niisuguste mitteblokeerivate DNS-pĂ€ringute töötlemiseks on integreeritud c-ares. KĂ”ik sĂŒsteemikutsed, mis pĂ”hjustavad blokeerimist, toimuvad teede grupis ja edastavad seejĂ€rel oma töö tulemuse tagasi anonĂŒĂŒmse kanali kaudu (pipe). JavaScripti koodi tĂ€itmine toimub Google'i vĂ€lja töötatud V8 mootori kaudu (Microsoft arendab lisaks versiooni Node.js Chakra-Core mootori kasutades).
Oma olemuselt on Node.js sarnane Perl AnyEvent, Ruby Event Machine, Python Twisted raamistikele ja sĂŒndmuste rakendusele Tcl-is, kuid Node.js sĂŒndmuste töötlemise ring on arendajate eest peidetud ja sarnaneb veebirakenduse sĂŒndmuste töötlemisega, mis töötab brauseris. Node.js rakenduste kirjutamisel tuleb arvestada sĂŒndmustepĂ”hise programmeerimise eripĂ€ra, nĂ€iteks, selle asemel, et tĂ€ita "var result = db.query('select..');" oodates töö valmimist ja seejĂ€rel tulemuste töötlemist, kasutatakse Node.js-is asĂŒnkroonilise tĂ€itmise printsiipi, st kood muudetakse "db.query('select..', function (result) {tulemuse töötlemine});", mille puhul juhtimine lĂ€heb koheselt jĂ€rgmisele koodile ja pĂ€ringu tulemust töödeldakse andmete saamisel.
TĂ€iendavalt tasub mainida, et Deno, Node.js looja poolt loodud uus pĂ”lvkond platvorm, on saanud 4,9 miljonit dollarit investeeringud. Deno meenutab oma olemuselt Node.js-i, kuid pĂŒĂŒab kĂ”rvaldada Node.js-i arhitektuuris tehtud kontseptuaalsed vead, pakkudes kasutajatele turvalisemat keskkonda. On mĂ€rgitud, et Deno Ă€ritooted pĂ”hinevad tĂ€ielikult avatud toodetel, samas kui Open Core mudelit, kus eraldatakse tasuline funktsionaalsus, peetakse Deno platvormi jaoks vastuvĂ”etamatuks.
Allikas: opennet.ru
