Saadaval on serveripoolne JavaScripti platvorm Node.js 21.0

Ilmus Node.js 21.0, platvorm, mis on mĂ”eldud JavaScripti pĂ”histe vĂ”rgurakenduste kĂ€itamiseks. Node.js 21.0 haru toetamine kestab 6 kuud. JĂ€rgmiste pĂ€evade jooksul lĂ”petatakse Node.js 20 haru stabiliseerimine, mis saab LTS staatuse ja mille toetamine kestab aprillini 2026. Eelmise LTS haru Node.js 18.0 hooldus kestab septembrini 2025 ja ĂŒle eelmine LTS haru 16.0 kuni aprillini 2024.

Peamised parandused:

  • Töös on stabiliseerunud Fetch API, mis on mĂ”eldud ressursside vĂ”rgust allalaadimiseks ning lihtsustab universaalse JavaScripti koodi kirjutamist, mis sobib serveri ja kliendi poolele. Rakendus pĂ”hineb undici HTTP/1.1 kliendi koodil ja on vĂ”imalikult lĂ€hedane sarnasele API-le, mida pakuvad brauserid. API sisaldab meetodit fetch() ja objekte Headers, Request ja Response, mis esindavad HTTP-pealkirju, pĂ€ringut ja vastust. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
  • API WebStreams toe toetab stabiilselt, andes juurdepÀÀsu vĂ”rgu kaudu edastatud andmevoogudele. API vĂ”imaldab lisada oma töötlejad, mis töötlevad andmeid reaalajas, oodates, kuni kogu fail on laaditud. Node.js-s on saadaval sellised objektid nagu ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream ja DecompressionStream.
  • Lisatud katseklient WebSocket, mis on ĂŒhilduv brauseritega. WebSocketi toe lubamiseks on ette nĂ€htud valik "—experimental-websocket".
  • Lisatud katse reĆŸiim JavaScripti moodulite ESM (ECMAScript moodulid, mida kasutatakse brauserites) vaikimisi rakendamiseks, mitte CommonJS (Node.js spetsiifiline). Muudatus ei mĂ”juta mooduleid, mille formaat on selgelt mÀÀratletud "type" vĂ€ljas package.json, mÀÀratud valiku "—input-type" kaudu vĂ”i on ilmne faili laiendist (.mjs ESM jaoks, .cjs CommonJS jaoks). SeetĂ”ttu tĂ”lgendatakse mooduleid, mis ei ole otseselt mÀÀratletud kui CommonJS (nt on laiend " .js"), uue reĆŸiimi lubamisel ESM moodulitena. Uute mooduliseadete aktiveerimiseks on soovitatav valik "—experimental-default-type".
  • V8 mootor on uuendatud versioonini 11.8, mida kasutatakse Chromiumis 118, kus on lisandunud toe ArrayBuffer.prototype.transfer meetodile, massiivide grupeerimise vĂ”imalusele (groupBy meetod) ning WebAssembly kĂ€skudele, mis kĂ€sitlevad konstande (i32.add, i32.sub, i32.mul, i64.add, i64.sub ja i64.mul).
  • Toetuse lĂ”petamine globalPreload kĂ€itlejale, mille asemel tuleb moodulite seadistamiseks kasutada register ja initialize kutsungit.
  • Funktsioonile fs.writeFile on lisatud valik „flush”, mis sunnib andmeid pĂ€rast iga kirjutamisoperatsiooni salvestama.
  • Parandatud URL-i parsimise, API fetchi, voogude, node:fs ja HTTP-ga seotud koodi jĂ”udlust.
  • Lisatud globaalne objekt navigator. NĂ€iteks CPU tuumade arvu saamiseks vĂ”ib kasutada omadust navigator.hardwareConcurrency.
  • Parameetrile „—test” on lisatud toimet glob-maskide toe jaoks, et valida kĂ€ivitatavaid teste (nt vĂ”ib mĂ€rkida „—test **/*.test.js”).
  • Uuendatud kaasa tulevat paketihaldurit npm 10.2.0 ja parsijat llhttp 9.1.2.
  • Toetuse lĂ”petamine Visual Studio 2019 ja macOS versioonide jaoks, mis on vanemad kui 11.0.

Node.js platvormi saab kasutada nii veebirakenduste serveripoolses toetuses kui ka tavapĂ€raste kliendi- ja serveripoolsete vĂ”rguprogrammide loomiseks. Node.js rakenduste funktsionaalsuse laiendamiseks on koostatud suur moodulite kogu, kust leiate moodulid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klientide rakendamiseks. serverite Lisaks on saadaval moodulid erinevate veebiraamistikest integreerimiseks, WebSocketi ja Ajax töötlejate, andmebaasi ĂŒhenduse moodulite (MySQL, PostgreSQL, SQLite, MongoDB), templaatide, CSS-mootorite, krĂŒptoalgoritmide ja autoriseerimissĂŒsteemide (OAuth), XML-parside rakendusteks.

Node.js kasutab paljude paralleelsete pĂ€ringute töötlemiseks asĂŒnkroonset koodikĂ€itlusmudelit, mille aluseks on sĂŒndmuste mittesĂŒvendav töötlemine ja tagasikutsumiste mÀÀramine. Ühenduste multiplexerimiseks toetatakse selliseid meetodeid nagu epoll, kqueue, /dev/poll ja select. Ühenduste multiplexerimiseks kasutatakse libuv raamatukogu, mis on Unix-sĂŒsteemides libev ja Windowsis IOCP. Töötajate basaari (thread pool) loomiseks kasutatakse libeio raamatukogu ning mittesĂŒvendav DNS-pĂ€ringute töötlemine on integreeritud c-ares'iga. KĂ”ik sĂŒsteemi kutsed, mis vĂ”ivad blokeeruda, tĂ€idetakse töötajate basaari sees ja seejĂ€rel, nagu ka signaalide töötlejad, edastavad oma töö tulemuse tagasi anonĂŒĂŒmsesse torusse (pipe). JavaScripti koodi tĂ€itmine tagatakse Google'i loodud V8 mootori kaasamise kaudu (tĂ€psemalt arendab Microsoft Node.js varianti Chakra-Core mootoriga).

Node.js on teatud mĂ”ttes sarnane Perl AnyEvent, Ruby Event Machine, Python Twisted ja Tcl-i sĂŒndmustepĂ”histe rakendustega, kuid Node.js-i sĂŒndmuste töötlemise tsĂŒkkel (event loop) on arendaja eest varjatud ning sarnaneb veebirakenduse sĂŒndmuste töötlemisega, mis töötab brauseris. Node.js-i rakenduste kirjutamisel tuleb arvestada sĂŒndmustepĂ”hise programmeerimise eripĂ€radega. NĂ€iteks, selle asemel et teostada "var result = db.query('select..');" ja oodata tulemuste töötlemise lĂ”petamist, kasutatakse Node.js-is asĂŒnkroonse tĂ€itmise pĂ”himĂ”tet, st kood muutub "db.query('select..', function (result) {töötle tulemus});", kus juhtimine lĂ€heb kohe edasi jĂ€rgmisele koodile ja pĂ€ringu tulemus 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