Versione JavaScript lato server Node.js 13.0

A disposizione rilasciare Nodo.js 13.0,piattaforme per l'esecuzione di applicazioni di rete in JavaScript. Allo stesso tempo, è stata completata la stabilizzazione del ramo precedente di Node.js 12.x, che è stato trasferito nella categoria delle versioni di supporto a lungo termine, i cui aggiornamenti vengono rilasciati per 4 anni. Il supporto per il precedente ramo LTS di Node.js 10.0 durerà fino ad aprile 2021 e il supporto per l'ultimo ramo LTS 8.0 fino a gennaio 2020.

Il principale miglioramenti:

  • Motore V8 aggiornato alla versione 7.8, che utilizza nuove tecniche di ottimizzazione delle prestazioni, migliora la destrutturazione degli oggetti, riduce il consumo di memoria e riduce i tempi di preparazione per l'esecuzione di WebAssembly;
  • Il supporto completo per l'internazionalizzazione e Unicode basato su libreria è abilitato per impostazione predefinita ICU (International Components for Unicode), che consente agli sviluppatori di scrivere codice supporto lavorare con lingue e luoghi diversi. Il modulo full-icu è ora installato di default;
  • API stabilizzata Discussioni sui lavoratori, permettendo creare loop di eventi multi-thread. L'implementazione si basa sul modulo work_threads, che consente di eseguire codice JavaScript in più thread paralleli. È stato inoltre effettuato il backport del supporto stabile per l'API Workers Threads al ramo LTS di Node.js 12.x;
  • I requisiti per le piattaforme sono stati aumentati. Per il montaggio adesso richiesto almeno macOS 10.11 (richiede Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Supporto migliorato per Python 3. Se il sistema ha sia Python 2 che Python 3, Python 2 viene comunque utilizzato, ma è stata aggiunta la possibilità di compilare quando solo Python 3 è installato sul sistema;
  • La vecchia implementazione del parser HTTP (“—http-parser=legacy”) è stata rimossa. Chiamate e proprietà rimosse o deprecate FSWatcher.prototype.start(), ChildProcess._channel, metodo open() negli oggetti ReadStream e WriteStream, request.connection, risposta.connection, module.createRequireFromPath();
  • dopo venne fuori aggiornamento 13.0.1, che ha risolto rapidamente diversi bug. In particolare è stato risolto il problema relativo alla visualizzazione di un avviso sull'utilizzo di una versione non supportata da parte di npm 6.12.0.

Ricordiamo che la piattaforma Node.js può essere utilizzata sia per il supporto server di applicazioni Web sia per la creazione di normali programmi di rete client e server. Per espandere la funzionalità delle applicazioni per Node.js, un gran numero di raccolta di moduli, in cui puoi trovare moduli con 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 a DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), template engine, motori CSS, implementazioni di algoritmi crittografici e sistemi di autorizzazione (OAuth), parser XML.

Per gestire un gran numero di richieste parallele, Node.js utilizza un modello di esecuzione del codice asincrono basato sull'elaborazione di eventi non bloccanti e sulla definizione di gestori di callback. I metodi supportati per le connessioni multiplex includono epoll, kqueue, /dev/poll e select. La libreria viene utilizzata per connessioni multiplex libuv, che è una sovrastruttura sopra libevo su sistemi Unix e su IOCP su Windows. Una libreria viene utilizzata per creare un pool di thread libeio, per eseguire query DNS in modalità non bloccante è integrato c-ares. Tutte le chiamate di sistema che causano il blocco vengono eseguite all'interno del pool di thread e quindi, come i gestori di segnali, restituiscono il risultato del loro lavoro attraverso una pipe senza nome. L'esecuzione del codice JavaScript è assicurata attraverso l'utilizzo di un motore sviluppato da Google V8 (Inoltre, Microsoft sta sviluppando una versione di Node.js con il motore Chakra-Core).

Fondamentalmente, Node.js è simile ai framework Perl Qualsiasi Evento, Macchina degli eventi Ruby, Pitone Contorto и implementazione eventi in Tcl, ma il loop degli eventi in Node.js è nascosto allo sviluppatore e assomiglia alla gestione degli eventi in un'applicazione Web in esecuzione in un browser. Quando si scrivono applicazioni per node.js, è necessario tenere conto delle specificità della programmazione basata sugli eventi, ad esempio, invece di fare "var result = db.query("select..");" con l'attesa del completamento del lavoro e la successiva elaborazione dei risultati, Node.js utilizza il principio dell'esecuzione asincrona, ovvero il codice viene trasformato in "db.query("select..", funzione (risultato) {elaborazione risultato});", in cui il controllo passerà immediatamente a ulteriore codice e il risultato della query verrà elaborato all'arrivo dei dati. .

Fonte: opennet.ru

Aggiungi un commento