Node.js 16.0 hè stata liberata, una piattaforma per eseguisce applicazioni di rete in JavaScript. Node.js 16.0 hè classificatu cum'è un ramu di supportu longu, ma questu statutu serà assignatu solu in uttrovi, dopu a stabilizazione. Node.js 16.0 serà supportatu finu à aprile 2023. U mantenimentu di u ramu LTS precedente di Node.js 14.0 durà finu à aprile 2023, è l'annu prima di l'ultimu ramu LTS 12.0 finu à aprile 2022. U supportu per a filiera 10.0 LTS serà interrotta in 10 ghjorni.
Principali miglioramenti:
- U mutore V8 hè statu aghjurnatu à a versione 9.0 (Node.js 15 hà utilizatu a versione 8.6), chì permette l'implementazione di funzioni cum'è a pruprietà "indici" per espressioni regulari (include un array cù e pusizioni iniziali è finali di gruppi di partite) , u metudu Atomics in Node.js 16 .waitAsync (versione asincrona di Atomics.wait), supportu per utilizà a keyword await in moduli di primu livellu. I chjami di funzione sò stati accelerati in situazioni induve u numeru di argumenti passati ùn currisponde micca à i paràmetri definiti in a funzione.
- L'API di Timers Promises hè stata stabilizzata, chì furnisce un settore alternativu di funzioni per travaglià cù timers chì tornanu l'uggetti Promise cum'è output, chì elimina a necessità di utilizà util.promisify(). impurtà { setTimeout } da 'timers/promises'; funzione async run () { await setTimeout (5000); console.log('Hello, World!'); } run();
- Hè stata aghjunta una implementazione sperimentale di l'API Web Crypto, cuncepita per eseguisce operazioni criptografiche basiche à u latu di l'applicazioni web, cum'è a manipulazione di hash criptografici, generazione è verificazione di firme digitali, codificazione è decodificazione di dati utilizendu diversi metudi di criptografia, è generazione criptograficamente sicura. numeri casuali. L'API furnisce ancu funzioni per a generazione è a gestione di e chjave.
- N-API (API per sviluppà add-ons) hè stata aghjurnata à a versione 8.
- A transizione à a nova versione di u gestore di pacchetti NPM 7.10 hè stata fatta.
- Stabilizà l'implementazione di a classa AbortController, chì hè basatu annantu à l'API Web AbortController è permette di annullà i signali in l'API scelti basati in Promise.
- U supportu per a terza versione di u furmatu Source Map, utilizatu per paragunà i moduli generati, processati o imballati cù u codice fonte originale, hè statu stabilizatu.
- Per a cumpatibilità cù l'API Web legacy, i metudi buffer.atob (data) è buffer.btoa (data) sò stati aghjuntu.
- A furmazione di assemblee per i novi dispositi Apple equipati cù u chip M1 ARM hà iniziatu.
- À a piantana Linux требования к версии компилятора подняты до GCC 8.3.
Cum'è ricordu, a piattaforma Node.js pò esse aduprata sia per u supportu lato server di l'applicazioni web sia per a creazione di prugrammi di rete standard lato client è lato server. Per allargà a funzionalità di l'applicazioni Node.js, hè stata preparata una grande cullezzione di moduli, cumpresi quelli cù implementazioni. servitori è clienti di HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli per l'integrazione cù diversi framework web, gestori WebSocket è Ajax, connettori à DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motori di mudelli, motori CSS, implementazioni di algoritmi crittografici è sistemi d'autorizazione (OAuth), parser XML.
Per trattà un gran numeru di richieste parallele, Node.js usa un mudellu d'esecuzione di codice asincronu basatu annantu à l'elaborazione di eventi senza bloccu è i gestori di callback. I metudi di multiplexazione di cunnessione supportati includenu epoll, kqueue, /dev/poll è select. A biblioteca libuv, chì hè un superset di libev nantu à i sistemi Unix è IOCP nantu à IOCP, hè aduprata per u multiplexazione di cunnessione. WindowsA biblioteca libeio hè aduprata per creà un pool di thread, è c-ares hè integratu per eseguisce query DNS in modu senza bloccu. Tutte e chjame di sistema di bloccu sò eseguite in u pool di thread è dopu, cum'è i gestori di signali, restituiscenu i so risultati via un pipe senza nome. L'esecuzione di JavaScript hè furnita da u mutore V8 di Google (Microsoft sviluppa ancu una variante 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.
Inoltre, pò esse nutatu chì a cumpagnia Deno, fundata da u creatore di Node.js per sviluppà a piattaforma Deno di a nova generazione, hà ricevutu $ 4.9 milioni in investimenti. In u so scopu, Deno hè simile à Node.js, ma prova di eliminà l'errori conceptuali fatti in l'architettura Node.js è furnisce l'utilizatori cun un ambiente più sicuru. Hè nutatu chì i suluzioni di l'affari di Deno seranu custruiti nantu à i prudutti completamente aperti, è u mudellu Open Core cù funziunalità pagata separata hè percepitu cum'è inacceptable per a piattaforma Deno.
Source: opennet.ru
