Node.js - Introduzione

Cos'è Node.js?

Node.js è una piattaforma lato server costruita sul motore JavaScript di Google Chrome (motore V8). Node.js è stato sviluppato da Ryan Dahl nel 2009 e la sua ultima versione è la v0.10.36. La definizione di Node.js fornita dalla sua documentazione ufficiale è la seguente:

Node.js è una piattaforma basata sul runtime JavaScript di Chrome per creare facilmente applicazioni di rete veloci e scalabili. Node.js utilizza un modello di I / O non bloccante basato sugli eventi che lo rende leggero ed efficiente, perfetto per applicazioni in tempo reale ad alta intensità di dati che vengono eseguite su dispositivi distribuiti.

Node.js è un ambiente di runtime multipiattaforma open source per lo sviluppo di applicazioni lato server e di rete. Le applicazioni Node.js sono scritte in JavaScript e possono essere eseguite all'interno del runtime Node.js su OS X, Microsoft Windows e Linux.

Node.js fornisce anche una ricca libreria di vari moduli JavaScript che semplifica notevolmente lo sviluppo di applicazioni web utilizzando Node.js.

Node.js = Runtime Environment + JavaScript Library

Caratteristiche di Node.js

Di seguito sono riportate alcune delle caratteristiche importanti che rendono Node.js la prima scelta degli architetti del software.

  • Asynchronous and Event Driven- Tutte le API della libreria Node.js sono asincrone, ovvero non bloccanti. Significa essenzialmente che un server basato su Node.js non attende mai che un'API restituisca dati. Il server passa all'API successiva dopo averla chiamata e un meccanismo di notifica di Events of Node.js aiuta il server a ottenere una risposta dalla chiamata API precedente.

  • Very Fast - Essendo costruita sul motore JavaScript V8 di Google Chrome, la libreria Node.js è molto veloce nell'esecuzione del codice.

  • Single Threaded but Highly Scalable- Node.js utilizza un modello a thread singolo con loop di eventi. Il meccanismo degli eventi aiuta il server a rispondere in modo non bloccante e rende il server altamente scalabile rispetto ai server tradizionali che creano thread limitati per gestire le richieste. Node.js utilizza un singolo programma a thread e lo stesso programma può fornire un servizio a un numero molto maggiore di richieste rispetto ai server tradizionali come Apache HTTP Server.

  • No Buffering- Le applicazioni Node.js non bufferizzano mai i dati. Queste applicazioni generano semplicemente i dati in blocchi.

  • License- Node.js è rilasciato con la licenza MIT .

Chi utilizza Node.js?

Di seguito è riportato il collegamento su github wiki contenente un elenco esaustivo di progetti, applicazioni e aziende che utilizzano Node.js. Questo elenco include eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo! E Yammer per citarne alcuni.

Concetti

Il diagramma seguente illustra alcune parti importanti di Node.js che discuteremo in dettaglio nei capitoli successivi.

Dove utilizzare Node.js?

Di seguito sono riportate le aree in cui Node.js si sta dimostrando un perfetto partner tecnologico.

  • Applicazioni associate a I / O
  • Applicazioni per lo streaming di dati
  • Applicazioni in tempo reale ad alta intensità di dati (DIRT)
  • Applicazioni basate su API JSON
  • Applicazioni a pagina singola

Dove non usare Node.js?

Non è consigliabile utilizzare Node.js per applicazioni ad alta intensità di CPU.