Uscita della piattaforma server JavaScript Node.js 13.0

Disponibile rilascio Node.js 13.0, piattaforma per l'esecuzione di applicazioni di rete in JavaScript. La stabilizzazione della precedente versione Node.js 12.x è stata completata, ora classificata come rilascio con supporto a lungo termine, con aggiornamenti forniti per 4 anni. Il supporto per la versione LTS precedente, Node.js 10.0, durerà fino ad aprile 2021, mentre per la versione LTS di due generazioni fa, 8.0, fino a gennaio 2020.

Principali miglioramenti:

  • Il motore V8 è stato aggiornato alla versione 7.8, che introduce nuovi metodi di ottimizzazione delle prestazioni, migliora la destrutturazione degli oggetti, riduce il consumo di memoria e accorcia il tempo di preparazione per l'esecuzione di WebAssembly;
  • La piena supporto all'internazionalizzazione e a Unicode è abilitata per impostazione predefinita, basata su librerie ICU (International Components for Unicode), consentendo agli sviluppatori di scrivere codice che supporti la gestione di diverse lingue e localizzazioni. Il modulo full-icu è ora installato per impostazione predefinita;
  • API stabilizzato Workers Threads, che consente creare cicli di eventi multi-thread (event loop). L'implementazione si basa sul modulo worker_threads, che consente l'esecuzione di codice JavaScript su più thread paralleli. Anche il supporto stabile per le API Workers Threads è stato retroportato nella versione LTS di Node.js 12.x;
  • Le esigenze della piattaforma sono aumentate. Ora è necessaria almeno macOS 10.11 (è richiesto Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008; è richiesto Migliorato il supporto per Python 3. Se sul sistema sono presenti sia Python 2 che Python 3, continua a essere utilizzato Python 2, ma è stata aggiunta la possibilità di compilare solo con Python 3;
  • Rimossa la vecchia implementazione del parser HTTP (“—http-parser=legacy”). Rimosse o rese obsolete chiamate e proprietà come FSWatcher.prototype.start(), ChildProcess._channel, il metodo open() negli oggetti ReadStream e WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Successivamente
  • l'aggiornamento 13.0.1, che ha risolto immediatamente diversi bug. Tra cui è stato risolto il problema di visualizzazione dell'avviso di utilizzo di una versione non supportata in npm 6.12.0. è stata rilasciata Ricordiamo che la piattaforma Node.js può essere utilizzata sia per il supporto server delle applicazioni web sia per creare normali programmi di rete client e server. Per ampliare le funzionalità delle applicazioni Node.js è stata preparata una vasta

collezione di moduli коллекция модулей, in cui è possibile trovare moduli per l'implementazione di server e client HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli per l'integrazione con vari framework web, gestori WebSocket e Ajax, connettori per database (MySQL, PostgreSQL, SQLite, MongoDB), motori di template, CSS, implementazioni di algoritmi crittografici e sistemi di autorizzazione (OAuth), parser XML.

Per garantire la gestione di un gran numero di richieste parallele, Node.js utilizza un modello di esecuzione del codice asincrono, basato sulla gestione degli eventi in modalità non bloccante e sulla definizione di gestori di callback. Sono supportati metodi di multiplexing delle connessioni come epoll, kqueue, /dev/poll e select. Per il multiplexing delle connessioni viene utilizzata la libreria libuv, che è un'estensione di libev nei sistemi Unix e di IOCP in Windows. Per creare un pool di thread viene utilizzata la libreria libeio, per eseguire richieste DNS in modalità non bloccante è integrato c-ares. Tutti i sistemi di chiamata che causano blocchi vengono eseguiti all'interno di un pool di thread e, come i gestori di segnali, restituiscono il risultato del loro lavoro attraverso un canale anonimo (pipe). L'esecuzione del codice JavaScript è garantita dall'implementazione dell'engine sviluppato da Google. V8 (in aggiunta, Microsoft sviluppa una variante di Node.js con l'engine Chakra-Core).

Essenzialmente, Node.js è simile ai framework Perl AnyEvent, Ruby Event Machine, Python Twisted e implementazione eventi in Tcl, ma il ciclo di elaborazione degli eventi (event loop) in Node.js è nascosto agli sviluppatori e ricorda la gestione degli eventi in un'app web che funziona nel browser. Quando si scrivono applicazioni per Node.js, è importante considerare le peculiarità della programmazione orientata agli eventi; ad esempio, invece di eseguire "var result = db.query('select..');" attendendo il completamento del lavoro e successivamente elaborando i risultati, in Node.js si utilizza il principio dell'esecuzione asincrona, cioè il codice viene trasformato in "db.query('select..', function (result) {elaborazione del risultato});", in cui il controllo passa immediatamente al codice successivo e il risultato della query verrà elaborato man mano che i dati arrivano.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster