Na voljo je strežniška JavaScript platforma Node.js 18.0

Izdan je Node.js 18.0, platforma za izvršavanje mrežnih aplikacija u JavaScriptu. Node.js 18.0 je svrstana u grane s dugoročnom podrškom, no ovaj status će biti dodeljen tek u oktobru, nakon stabilizacije. Podrška za Node.js 18.x će se vršiti do aprila 2025. godine. Održavanje prethodne LTS grane Node.js 16.x trajeće do aprila 2024. godine, dok će održavanje ranije LTS grane 14.x trajati do aprila 2023. godine. Održavanje LTS grane 12.x će biti prekinuto 30. aprila, a međugrane Node.js 17.x 1. juna.

Glavne izboljšave:

  • V8 motor je ažuriran na verziju 10.1, koja se koristi u Chromiumu 101. U poređenju s izdanjem Node.js 17.9.0, uvedena je podrška za nove mogućnosti, kao što su metode findLast i findLastIndex za pretragu elemenata od kraja niza, kao i funkcija Intl.supportedValuesOf. Poboljšan je API Intl.Locale. Inicijalizacija polja klasa i privatnih metoda je ubrzana.
  • Eksperimentalni API fetch() je uključen kao podrazumevani, namenjen za preuzimanje resursa putem mreže. Implementacija se oslanja na kod iz HTTP/1.1 klijenta undici i što je moguće više liči na sličan API dostupan u pretraživačima. Takođe je obezbeđena podrška za interfejse FormData, Headers, Request i Response za manipulaciju HTTP zaglavljima zahteva i odgovora. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
  • Dodata je eksperimentalna implementacija API Web Streams, koja omogućava pristup podacima dobijenim putem mreže. API omogućava dodavanje vlastitih obradnih procesa za rad s podacima dok informacije stižu preko mreže, bez čekanja na preuzimanje cele datoteke. U Node.js su sada dostupni objekti kao što su ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream i DecompressionStream.
  • API Blob je doveden do stabilnog stanja, što omogućava enkapsulaciju nepromenljivih sirovih podataka za njihovu sigurnu upotrebu u raznim radnim tokovima.
  • API BroadcastChannel je doveden do stabilnog stanja, što omogućava organizaciju razmene poruka u asinhronom režimu u formatu 'jedan pošiljalac — više primitaca'.
  • Eksperimentalni modul node:test je dodat za kreiranje i pokretanje testova u JavaScriptu, koji vraćaju rezultate u TAP formatu (Test Anything Protocol).
  • Zagotovljene so pripravljene gradnje za Red Hat Enterprise Linux (RHEL) 8 in druge distribucije, ki temeljijo na Glibc 2.28+, vključno z Debian 10 in Ubuntu 20.04, prav tako pa za macOS 10.15+. Zaradi težav pri gradnji motorja V8 je začasno prekinjena izdelava 32-bitnih graditev za Windows.
  • Na voljo je eksperimentalna možnost gradnje izvršne datoteke Node.js z izbranimi komponentami, ki se inicializirajo ob zagonu. Za določitev začetnih komponent je bila skriptu za gradnjo configure dodana možnost „—node-snapshot-main“, na primer „./configure —node-snapshot-main=marked.js; name node“

Platforma Node.js se lahko uporablja tako za strežniško spremljanje delovanja spletnih aplikacij kot tudi za ustvarjanje običajnih odjemalskih in strežniških omrežnih programov. Za razširitev funkcionalnosti aplikacij za Node.js je pripravljena obsežna zbirka modulov, v kateri lahko najdete module z implementacijo. strežnikov i HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klijenata, module za integraciju sa raznim web okvirima, WebSocket i Ajax obradi, konektore za baze podataka (MySQL, PostgreSQL, SQLite, MongoDB), predloške, CSS motore, implementacije kriptoalgoritama i sistema autorizacije (OAuth), XML parsera.

Za obradnjo velikega števila vzporednih zahtevkov Node.js uporablja asinhroni model izvajanja kode, ki temelji na obdelavi dogodkov v neblokirnem načinu in določanju callback obdelovalcev. Kot načine multiplexiranja povezav podpira metode, kot so epoll, kqueue, /dev/poll in select. Za multiplexiranje povezav se uporablja knjižnica libuv, ki je nadgradnja nad libev v sistemih Unix in nad IOCP v Windows. Za ustvarjanje sklada niti (thread pool) se uporablja knjižnica libeio, za izvedbo DNS zahtevkov v neblokirnem načinu pa je integriran c-ares. Vsi sistemski klici, ki povzročajo blokado, se izvajajo v okviru sklada niti in nato, tako kot obdelovalci signalov, rezultat svojega dela pošljejo nazaj prek anonimne cevi (pipe). Izvajanje JavaScript kode omogoča vključen motor V8, ki ga je razvilo podjetje Google (dodatno Microsoft razvija različico Node.js z motorjem Chakra-Core).

Po svoji naravi je Node.js podoben okvirjem Perl AnyEvent, Ruby Event Machine, Python Twisted in izvedbi dogodkov v Tcl, vendar je cikel obdelave dogodkov (event loop) v Node.js skrit pred razvijalcem in spominja na obdelavo dogodkov v spletni aplikaciji, ki deluje v brskalniku. Pri pisanju aplikacij za Node.js je potrebno upoštevati posebnosti programiranja, usmerjenega na dogodke; na primer, namesto izvajanja 'var result = db.query('select..');' z čakanjem na zaključek dela in nadaljnjo obdelavo rezultatov, Node.js uporablja načelo asinhronega izvajanja, torej se koda preoblikuje v 'db.query('select..', function (result) {obdelava rezultata});', pri čemer se nadzor takoj prenese na nadaljnjo kodo, rezultat poizvedbe pa se obdeluje ob prihodu podatkov.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster