NodoJS

Cos'è NodeJS?

Cos'è NodeJS?

In questo tutorial, inizieremo con Node.js. Scopri alcune delle sue funzionalità più popolari e cercherà di motivare i lettori ad adottare questa meravigliosa tecnologia per i loro progetti futuri. Come prerequisito, devi solo avere una discreta familiarità con JavaScript e concetti di programmazione generici, come variabili, tipi di dati e funzioni.

JavaScript ha una strana storia. È iniziato come un linguaggio di scripting leggero per i browser Web ed è stato trattato più come un "giocattolo" che come un serio linguaggio di programmazione. Ma ha da tempo superato il suo umile inizio.

Le persone hanno iniziato a estendere le sue capacità quando l'interprete JavaScript di Chrome open source di Google: il motore V8. Nodo.js prende questo motore JavaScript e lo estende per funzionare al di fuori del regno del browser. Nodo.js associa JavaScript con l'API del tuo sistema operativo in modo che possa essere eseguito in modo nativo sul server (o nel caso di uno sviluppatore, sul suo desktop). Sì, questo significa che puoi implementare applicazioni lato server, applicazioni desktop e meccanismi di back-end imparando solo una lingua: JavaScript.

In poche parole, puoi scrivere .js file che contengono programmi scritti in sintassi JavaScript che verranno interpretati da Node.js più o meno allo stesso modo di .pi i file con sintassi valida vengono interpretati/eseguiti dall'interprete python.

C'è di più che solo conoscere la lingua, tuttavia, Node.js ha moduli e concetti sconosciuti che richiederebbero pazienza in un ciclo infinito di apprendimento di nuovi concetti. Ha il suo gestore di pacchetti (npm), il gestore di versione (nvm) e il registro di pacchetti più grande del mondo. Stai tranquillo, la difficoltà iniziale ti renderà la vita molto più facile nel lungo periodo.

Installazione

Attualmente ci sono due opzioni per Node.js versioni che potresti voler prendere in considerazione.

Rimarremo fedeli alla versione LTS. Scaricare Node dal sito ufficiale per il tuo sistema operativo installerebbe anche Node Package Manager (npm). È difficile parlare di Node.js senza entrare in npm. Torneremo al gestore pacchetti più tardi. Se stai usando Ubuntu o qualsiasi altra distribuzione Debian, usa semplicemente:

$ sudo apt install nodejs

Per tutti i binari e il codice sorgente visita la pagina di download ufficiale.

Questo è tutto con l'installazione, è ora di dire "Hello, World!"

Ciao mondo! E creare un server

Come promesso, creeremo un Ciao.js file ed eseguilo usando Node. In un file di testo semplice, chiamato Ciao.js, scriviamo la seguente riga:

console.log(“Ciao, Mondo!”);

Ora salva il file e apri un terminale nella stessa directory di quel file ed esegui il seguente comando:

$node ciao.js
#Oppure puoi scappare
$node ciao

Questo ti darà l'output desiderato di "Ciao mondo". Proprio come JavaScript vanigliato. Ma sicuramente possiamo fare di meglio..

A differenza delle applicazioni basate su PHP che richiedono Apache o Nginx o qualche altro programma server web per essere eseguito in cima, nel nodo scriviamo le nostre rotte http, configuriamo le porte e i nomi host ed elaboriamo le richieste HTTP per dare risposte appropriate.

Sembra un sacco di lavoro, ma è solo un ostacolo iniziale nella curva di apprendimento e, una volta che avrai preso confidenza con le cose, sarai in grado di comprendere le applicazioni web in modo più approfondito che mai. Creiamo un server web che ascolta sulla porta 3000 su localhost e restituisce un file di testo come risposta. Crea un file app.js con i seguenti contenuti:

const http = require('http');
const hostname = '127.0.0.1';
const porta = 3000;
const server = http.createServer((req, res) =>
res.statoCodice = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Ciao mondo\n');
);
server.listen(porta, nome host, () =>
console.log('Server in esecuzione su http://$hostname:$port/');
);

Prima di entrare nei dettagli del codice, salva questo file e apri un terminale nella stessa directory del file, quindi esegui:

$ nodo app

Questo eseguirà il contenuto di app.js file e otterrai un output come segue:

Apri un browser web e visita http://localhost:3000/ o http://127.0.0.1:3000/ per vedere un semplice testo Hello World nella finestra del browser.

Quindi cosa abbiamo appena fatto?? Bene, se hai familiarità con JavaScript, probabilmente puoi dargli un senso..

Il prima linea importa il modulo http, che è un modulo integrato che viene fornito con Node, e ci aiuta ad ascoltare le richieste sui socket Web, elaborare le richieste http e fornire risposte appropriate.

Il seconda e terza riga imposta il Nome host per '127.0.0.1' e porta  per 3000. Ciò significa che possiamo continuare a riutilizzare la variabile Nome host e porta, invece di digitare l'intero indirizzo IP. Successivamente, quando lo stai effettivamente implementando su un server, lo sostituirai con l'indirizzo IP del server e un numero di porta come 80 o 443 se si tratta di un server web. La parola chiave cost assicura che la variabile non possa essere modificata altrove nel programma.

Il Linee dalle quattro alle otto  crea un oggetto server che accetta la richiesta come req e dà risposta come res.

La risposta ha un attributo statusCode, il res.statoCodice che è impostato su 200 che il client interpreta come stato "Ok". I codici di errore sono 400 e 500, ad esempio, l'errore 404 è il codice per la risorsa non trovata. Allo stesso modo, l'attributo setHeader è impostato su 'text/plain', il che significa che il client riceverà testo in chiaro. Puoi impostarlo su HTML e il tuo browser renderà qualsiasi html valido con cui il server risponde. E il fine l'attributo è semplicemente il testo che vogliamo restituire. Invece di avere una stringa qui, le applicazioni del mondo reale avranno un file HTML statico o altro .js file per il browser client, che costituirebbe una risposta molto più utile.

Infine, il ultime tre righe avvia il server e stampa un messaggio dicendo che è attivo su uno specifico hostname e numero di porta come impostato da cost dichiarazioni, inizialmente. Ogni volta che arriva una nuova richiesta al nome host specificato: il server di combinazione porta risponde con l'appropriato risposta oggetto.

Cosa implica?

Non è necessario comprendere il codice sopra nella sua interezza per conoscere le implicazioni. Abbiamo già JavaScript sul front-end grazie a fantastici framework come Angular e React. Oltre a ciò, abbiamo anche funzionalità di back-end integrate nel Nodo.js ethos.

Framework web come Express.js può aiutarti a scrivere applicazioni ancora più complesse su Node.js. Il recupero dei dati dal database, la creazione di API e l'interfaccia utente front-end possono essere scritti utilizzando un'unica lingua.

La potenza del V8

Nonostante sia un'unica lingua, c'è ancora molto da imparare. Framework e moduli diversi hanno funzionalità diverse. Ci sono una tonnellata di versioni di cui tenere traccia. Quindi c'è qualche altro vantaggio nell'usare il nodo?.js ecosistema.

Uno degli argomenti più importanti a sostegno di ciò è che il motore V8 ha un eccellente supporto per I/O asincrono e non bloccante. Il che sostanzialmente significa che un singolo processo in esecuzione sulla memoria del sistema può gestire più richieste in entrata Ciò significa approssimativamente che se una richiesta viene elaborata e ne arriva un'altra, Node ha la capacità di avviare l'elaborazione della nuova richiesta anche se il la prima richiesta non è ancora terminata.

Inoltre, un singolo processo in esecuzione nella tua memoria è responsabile della gestione di tutte le richieste in arrivo. A differenza delle applicazioni basate su PHP che generano un nuovo processo per ogni nuova richiesta in arrivo.

Spero che questa introduzione sia stata sufficiente per motivarti su Node.js. Facci sapere se vuoi tutorial più approfonditi su argomenti simili seguendoci su Twitter, Facebook e YouTube.

Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...