Avaldatud on Node.js 23.0 platvorm, millel on algne toetamine TypeScripti keelest.

Ilmus Node.js 23.0.0, platvorm, mis toetab JavaScripti keeles võrgu rakenduste käitamise. Node.js 23.0 kuulub vahepealsetesse harudesse, mille hooldus kestab 7 kuud (kuni juuni 2025). Järgmise paari päeva jooksul lõpetatakse Node.js 22 haru stabiilsus, mis saab 29. oktoobril LTS staatuse ja mille toe kestus on kuni aprill 2027. Eelmiste LTS-harude Node.js 20.x ja 18.x toetus jätkub kuni aprill 2026 ja 2025.

Peamised parandused:

  • Lisa eksperimentaalne toetus TypeScripti keelele, mis võimaldab selgeid tüübide määratlusi. Toetust saab aktiveerida valikute „—experimental-strip-types“ ja „—experimental-transform-types“ abil. Esimese valiku korral piirdub TypeScripti töötamine keeltespetsiifiliste tüübide määratlemise puhastamisega (tüübikontrolli ei tehta, kood konverteeritakse lihtsalt JavaScripti tüübita kujule). Teine valik teisendab JavaScripti koodiks mõningaid TypeScripti süntaksi elemente, näiteks loendi (enum) ja nimede ruumide (namespace).
  • Eesmärgiks on vaikimisi lubatud ESM (ECMAScript modulaarsüsteemi) JavaScripti moodulite laadimise „require()“ kasutamine sünkroonses režiimis. ESM-mooduleid kasutatakse brauserites ning need asendavad Node.js-ile omased CommonJS moodulid. Node.js-is tähendab ESM-mooduli laadimine „require()“ kaudu, et see peab toimuma sünkroonses režiimis (ilma awaitita tipp-ühenduses).
  • Automaatne ESM-moodulite tuvastamine on tagatud failides, millel ei ole laiendit või millel on laiend „.js“. Varasemalt tõlgendati selliseid faile kui CommonJS mooduleid, kui nende tüüp (‟type”: „module”) ei olnud selgesõnaliselt määratud samas kataloogis asuvas package.json failis. Uues versioonis tehakse failide puhul, mille tüübi kohta package.json-is pole teavet, esmalt katse laadimist CommonJS moodulina, ja kui see ei õnnestu, siis ESM moodulina.
  • Käideldav eksperimentaalne rakendus on lisatud. brauseritega ühilduv Web Storage API, mis on mõeldud pikaajalise (klass localStorage) või ajutise (klass sessionStorage) võtme/väärtuse põhise andmete salvestamiseks. Web Storagei toe lubamiseks on vajalik käivitamine lipuga „--experimental-webstorage” ja salvestusfaili asukoha määramine lipuga „--localstorage-file”.
  • Lisatud eksperimentaalne SQLite API andmebaaside haldamiseks, kasutades SQL päringute keelt ja SQLite raamatukogu baasil loodud salvestust. Lisaks andmebaasi salvestamisele faili kettal, saab selle ka mälus paikneda, määrates faili nime asemel ':memory:'. Ülaltoodud Web Storage API on samuti rakendatud SQLite'i põhjal, mis on toonud SQLite Node.js sõltuvustesse.
  • Stabiilseks on kuulutatud käsk «node —run», mis on mõeldud package.json failis määratletud skriptide käitamiseks.
  • Viidud ellu valikuline toetamine kompileeritud koodi ketta vahemällu salvestamiseks, et oluliselt kiirendada moodulite käivitamist. Vahemälu sisselülitamine toimub keskkonnamuutuja NODE_COMPILE_CACHE abil. Selle funktsiooni eesmärk sarnaneb paketiga v8-compile-cache, kuid see pakub paremat tulemuslikkust ja ESM moodulite tuge.
  • Optimeeritud Buffer objekti, mis on oluliselt parandanud Buffer.copy() ja Buffer.write() meetodite tulemuslikkust.
  • Parandatud node:fs mooduli tulemuslikkust, vähendades samuti C++ koodi väljakutseid töö käigus.
  • V8 mootor on uuendatud versioonile 12.9, mida kasutatakse Chromium 129-s.
  • Toetust 32-bit Windows süsteemidele ei ole enam.
  • Node.js ja V8 mootori C++20 standardi implementatsiooni tõttu on GCC kompilaatori versioonile esitatud kõrgemad nõuded. Node.js kogumiseks on nüüd vajalik vähemalt GCC 12 versioon.

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 suurte paralleelsete päringute töötlemiseks asünkroonset mudelit, mis põhineb sündmustel mittesünkroonsete töötlemiste jaoks ja callback-funktsioonide määratlemisel. Ühenduste multipleximise meetoditena toetatakse selliseid tehnikaid nagu epoll, kqueue, /dev/poll ja select. Ühenduste multipleximiseks kasutatakse libuv teeki, mis on Unix-süsteemide libev ja Windowsi IOCP kohalduse kiht. Thread pooli loomiseks kasutatakse libeio teeki, ning mittesünkroonsete DNS-päringute täitmiseks on integreeritud c-ares. Kõik blokeerivad süsteemi kutsed täidetakse thread poolis ja edastavad seejärel oma töö tulemuse tagasi anonüümse toru kaudu.

JavaScripti koodi täitmine toimub Google'i välja töötatud V8 mootori kaudu (t oletame, et Microsoft arendab samal ajal Node.js varianti Chakra-Core'i mootoriga). Node.js on põhimõtteliselt sarnane Perl AnyEvent'i, Ruby Event Machine'i, Python Twisted'i ja Tcl'i sündmuste rakendusega, kuid sündmusteforemni (event loop) Node.js-is on arendaja eest varjatud ja meenutab sündmuste töötlemist veebirakenduses, mis töötab brauseris.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster