A piattaforma JavaScript di u latu di u servitore Node.js 18.0 dispunibule

Node.js 18.0 hè stata liberata, una piattaforma per eseguisce applicazioni di rete in JavaScript. Node.js 18.0 hè classificatu cum'è un ramu di supportu à longu andà, ma questu statutu serà assignatu solu in uttrovi, dopu a stabilizazione. Node.js 18.x serà supportatu finu à aprile 2025. U mantenimentu di u ramu LTS precedente di Node.js 16.x durà finu à aprile 2024, è l'annu prima di l'ultimu ramu LTS 14.x finu à aprile 2023. U ramu 12.x LTS serà discontinuatu u 30 d'aprile, è u ramu di staging Node.js 17.x serà discontinuatu u 1 di ghjugnu.

Principali miglioramenti:

  • U mutore V8 hè stata aghjurnata à a versione 10.1, chì hè utilizata in Chromium 101. In cunfrontu cù a versione 17.9.0 di Node.js, ci hè avà supportu per funziunalità cum'è i metudi findLast è findLastIndex per truvà elementi relative à a fine di un array, è a funzione Intl.supportedValuesOf. API Intl.Locale mejorata. L'inizializazione di i campi di classi è i metudi privati ​​hè stata accelerata.
  • L'API sperimentale fetch() hè attivata per difettu, pensata per carica risorse nantu à a reta. L'implementazione hè basatu annantu à u codice da u cliente HTTP/1.1 undici è hè u più vicinu pussibule à l'API simili furnite in i navigatori. Questu include supportu per l'interfacce FormData, Headers, Request and Response per a manipulazione di l'intestazione HTTP è a risposta. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json (); console.log (data); }
  • Una implementazione sperimentale di l'API Web Streams hè stata aghjunta, chì furnisce l'accessu à i flussi di dati ricevuti nantu à a reta. L'API permette di aghjunghje i vostri propri gestori per travaglià cù e dati cum'è l'infurmazioni arrivanu nantu à a reta, senza aspittà chì u schedariu sanu sia scaricatu. L'oggetti avà dispunibili in Node.js include ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream è DecompressionStream.
  • L'API Blob hè stata spustata in stabile, chì vi permette di incapsulà e dati prima immutabili per un usu sicuru in diversi fili di u travagliu.
  • L'API BroadcastChannel hè stata stabilita, chì vi permette di urganizà u scambiu di missaghji in modu asincronu in u formatu "un mittente - parechji destinatari".
  • Node di modulu sperimentale aghjuntu: prova per creà è eseguisce testi in JavaScript chì tornanu risultati in u formatu TAP (Test Anything Protocol).
  • Hè furnita a generazione di assemblei pronti per Red Hat Enterprise Linux (RHEL) 8 è altre distribuzioni basate nantu à Glibc 2.28+, cumprese Debian 10 è Ubuntu 20.04, è ancu per macOS 10.15+. A causa di prublemi cù a custruzzione di u mutore V8, a creazione di build 32-bit per Windows hè stata temporaneamente fermata.
  • Fornite una opzione sperimentale per custruisce un eseguibile Node.js cù cumpunenti selezziunati da l'utilizatori inizializzati à l'iniziu. Per definisce i cumpunenti di partenza, l'opzione "--node-snapshot-main" hè stata aghjunta à u script di custruzzione di cunfigurazione, per esempiu, "./configure -node-snapshot-main=marked.js; nome nodu"

A piattaforma Node.js pò esse usata sia per u mantenimentu di u servitore di l'applicazioni Web sia per a creazione di prugrammi di rete di client è servitore regulare. Per espansione a funziunalità di l'applicazioni per Node.js, hè stata preparata una grande cullizzioni di moduli, in quale pudete truvà moduli cù l'implementazione di HTTP, SMTP, XMPP, DNS, FTP, IMAP, servitori POP3 è clienti, moduli per integrazione. cù diversi frameworks web, gestori WebSocket è Ajax, connettori DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mutori di mudelli, motori CSS, implementazioni di algoritmi criptografici è sistemi d'autorizazione (OAuth), parsers XML.

Per assicurà a trasfurmazioni di un gran numaru di richieste parallele, Node.js usa un mudellu di esecuzione di codice asincronu basatu nantu à a gestione di l'eventi senza bloccu è a definizione di i gestori di callback. I metudi supportati per e cunnessione multiplexing sò epoll, kqueue, /dev/poll, è selezziunate. Per a multiplexing di cunnessione, a biblioteca libuv hè aduprata, chì hè un add-on per libev in sistemi Unix è IOCP in Windows. A libreria libeio hè aduprata per creà un pool di fili, è c-ares hè integratu per eseguisce dumande DNS in modu senza bloccu. Tutti i chjami di u sistema chì causanu u bloccu sò eseguiti in u pool di filu è dopu, cum'è i gestori di signali, trasfirìanu u risultatu di u so travagliu à traversu una pipa senza nome (pipa). L'esekzione di codice JavaScript hè furnita per mezu di l'usu di u mutore V8 sviluppatu da Google (in più, Microsoft sviluppa una versione di Node.js cù u mutore Chakra-Core).

In u so core, Node.js hè simile à Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, è l'implementazione di l'avvenimentu Tcl, ma u ciclu di l'avvenimentu in Node.js hè oculatu da u sviluppatore è s'assumiglia à a gestione di l'avvenimenti in una applicazione web in esecuzione. in u navigatore. Quandu scrivite l'applicazioni per node.js, avete bisognu di cunsiderà e specificità di prugrammazione guidata da l'avvenimentu, per esempiu, invece di fà "var result = db.query ("select..");" cù l'aspittà di a fine di u travagliu è u processu sussegwente di i risultati, Node.js usa u principiu di l'esekzione asincrona, i.e. u codice hè trasfurmatu in "db.query ("select ..", funzione (result) {result processing});", in quale u cuntrollu passerà istantaneamente à più codice, è u risultatu di a quistione serà processatu cum'è data ghjunghje.

Source: opennet.ru

Add a comment