Saadaval on serveripoolne JavaScript platvorm Node.js 18.0.

Ilmus Node.js 18.0, platvorm vÔrgurakenduste tÀitmiseks JavaScriptis. Node.js 18.0 kuulub pikal toetuse perioodil olevate versioonide hulka, kuid see staatus antakse pÀrast stabiilsuse tagamise lÀbiviimist ainult oktoobris. Node.js 18.x toetamist jÀtkatakse aprillini 2025. Endise LTS-haru Node.js 16.x tugi kestab aprillini 2024, ja eelnenud LTS-haru 14.x kuni aprillini 2023. LTS-haru 12.x toetamine lÔpetatakse 30. aprillil ja vahepealne haru Node.js 17.x 1. juunil.

Peamised tÀiustused:

  • V8 mootor on uuendatud versioonile 10.1, mida kasutatakse Chromium 101-s. VĂ”rreldes Node.js 17.9.0 vĂ€ljaandega on lisatud sellised funktsioonid nagu findLast ja findLastIndex, mis vĂ”imaldavad otsida elemente massiivi lĂ”pust ning Intl.supportedValuesOf funktsioon. API Intl.Locale on paranenud. Klasside vĂ€ljade ja privaatsete meetodite algatamine on kiirem.
  • Vaikimisi on sisse lĂŒlitatud eksperimentaalne API fetch(), mis on mĂ”eldud ressursside laadimiseks ĂŒle vĂ”rgu. Rakendus pĂ”hineb HTTP/1.1 kliendi undici koodil ja on vĂ”imalikult lĂ€hedane sarnasele API-le, mis on saadaval brauserites. Sealhulgas on tagatud toe olemasolu liidestele FormData, Headers, Request ja Response, et manipuleerida HTTP-pĂ€ringute ja -vastuste pĂ€istega. const res = await fetch(‘https://nodejs.org/api/documentation.json’); if (res.ok) { const data = await res.json(); console.log(data); }
  • Lisatud on eksperimentaalne Web Streams API teostus, mis annab juurdepÀÀsu vĂ”rgu kaudu saadud andmevoogudele. API vĂ”imaldab lisada oma töötlejad andmete töötlemiseks andmete voolamisel, ootamata kogu faili laadimist. Node.js-s on nĂŒĂŒd saadaval sellised objektid nagu ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream ja DecompressionStream.
  • Stabiilseks on muudetud API Blob, mis vĂ”imaldab kapseldada muutumatuid toorandmeid nende turvaliseks kasutamiseks erinevates töövoogudes.
  • Stabiilseks on muudetud API BroadcastChannel, mis vĂ”imaldab korraldada asĂŒnkroonset sĂ”numivahetust â€žĂŒks saatja - palju saajat” formaadis.
  • Lisatud on eksperimentaalne moodul node:test JavaScriptis testide loomiseks ja kĂ€ivitamiseks, mis tagastavad tulemuse TAP (Test Anything Protocol) formaadis.
  • Valmistatud on valmis pakette Red Hat Enterprise Linux (RHEL) 8 ja teiste Glibc 2.28+ pĂ”histe distributsioonide jaoks, sealhulgas Debian 10 ja Ubuntu 20.04, samuti macOS 10.15+ jaoks. V8 mootori koostamisprobleemide tĂ”ttu on 32-bitiste Windowsi paketide loomine ajutiselt peatatud.
  • Eksperimentaalselt on lisatud vĂ”imalus koostada Node.js tĂ€itevfaili valitud kasutaja komponente, mis initsialiseeritakse kĂ€ivitamisel. Algkomponentide mÀÀramiseks on koostamisriistade skripti configure lisatud valik "--node-snapshot-main", nĂ€iteks "./configure --node-snapshot-main=marked.js; name node".

Node.js platvormi saab kasutada nii veebirakenduste serveripoolseks toe tagamiseks kui ka tavaliste klient-serveri vĂ”rgurakenduste loomiseks. Node.js jaoks on vĂ€lja töötatud suur moodulite kogumik, kust leiate mooduleid, mis hĂ”lmavad 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.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster