Che cos'è Node.JS e perché dovrei preoccuparmi? [Sviluppo web]
JavaScript è solo un linguaggio di programmazione lato client che viene eseguito nel browser, giusto? Non più. Node.js è un modo per eseguire JavaScript sul server; ma è molto di più. Se sei interessato allo sviluppo del web, dovresti davvero scoprire qualcosa su Node e perché sta facendo ondate nella community.
Che cos'è Node.js?
Il nodo è un'interfaccia per il runtime di V8 JavaScript, l'interprete JavaScript super veloce che viene eseguito nel browser Chrome. Come succede, puoi anche scaricare V8 e incorporarlo in qualsiasi cosa; Il nodo lo fa, per i server web. JavaScript è dopotutto, solo un linguaggio - non c'è nulla che dice che non possa essere usato su un server così come nel browser dell'utente. In un tipico stack del server LAMP Come configurare un server Web Apache in 3 semplici passaggi Come configurare un server Web Apache in 3 semplici passaggi Qualunque sia il motivo, è possibile che a un certo punto si desideri avviare un server web. Sia che tu voglia concedervi l'accesso remoto a determinate pagine o servizi, vuoi ottenere una community ... Leggi di più, hai un server Web di base Apache o NGINX, con PHP in esecuzione su di esso. Ogni nuova connessione al server genera un nuovo thread ed è molto facile perdere rapidamente le prestazioni o per un sito “scendere” - l'unico modo per supportare più utenti nell'aggiungere più server. Semplicemente non scala bene. Con Node, questo non è il caso. Non c'è Apache per ascoltare le connessioni in entrata e restituire i codici di stato HTTP: dovrai gestire tu stesso l'architettura del core server. Fortunatamente, ci sono dei moduli per renderlo più semplice, ma può ancora essere un po 'opprimente quando si inizia. Il risultato, tuttavia, è un'applicazione web ad alte prestazioni.
JavaScript è un linguaggio basato su eventi jQuery Tutorial (Parte 4) - Event Listeners jQuery Tutorial (Parte 4) - Event Listeners Oggi stiamo andando a dare una svolta e davvero mostrare dove jQuery brilla - eventi. Se hai seguito le esercitazioni precedenti, ora dovresti avere una buona conoscenza del codice di base ... Leggi di più, quindi tutto ciò che accade sul server attiva un evento non bloccante. Ogni nuova connessione attiva un evento; i dati ricevuti da un modulo di caricamento generano un evento ricevuto dai dati; la richiesta di dati dal database attiva un evento. In pratica, ciò significa che un sito nodo non si bloccherà mai e può supportare decine di migliaia di utenti simultanei. Node.js svolge il ruolo del server - Apache - e interpreta il codice dell'applicazione che viene eseguito su di esso. Proprio come Apache, ci sono vari moduli (librerie) che possono essere installati per aggiungere funzionalità e funzionalità - come archivi dati, supporto file Zip, accesso Facebook o gateway di pagamento. Naturalmente, non ce ne sono tanti come PHP, ma Node è ancora nelle sue fasi iniziali e c'è una forte comunità dietro di esso. Un concetto fondamentale di Node è costituito da funzioni asincrone, quindi tutto viene eseguito in background, in pratica. Con la maggior parte dei linguaggi di scripting lato server, il programma deve attendere mentre ciascuna funzione viene completata prima di passare alla successiva. Con Node, specifichi le funzioni che dovrebbero essere eseguite al completamento di qualcos'altro, mentre il resto della tua app si muoverà. È un argomento complesso che non entrerò troppo in profondità oggi, ma una di quelle caratteristiche che definiscono il nodo, quindi è importante comprenderlo. Basta chattare però - ecco un server HTTP di esempio Hello World per dare una rapida idea di alcuni di questi concetti.
var http = require ("http"); http.createServer (funzione (richiesta, risposta) response.writeHead (200, 'Content-Type': 'text / plain'); response.write ('Hello World!'); response.end (); ) .listen (8080); console.log ("Server in esecuzione!");
Proviamo a rompere questo. Primo, includiamo il modulo http nel progetto. Creeremo quindi un server e passeremo una funzione anonima come parametro: questa funzione verrà chiamata per ogni nuova connessione creata. Ci vogliono due argomenti - richiesta, contenente i parametri di richiesta dall'utente; e risposta, che useremo per rispedire le cose. Successivamente, stiamo utilizzando l'oggetto risposta per scrivere un'intestazione per l'utente con il codice HTTP di risposta 200 (“ok”) e tipo di contenuto, scrivendo a “Ciao mondo!” messaggio e termina la risposta. Infine, diciamo al server di ascoltare sulla porta 8080 per le richieste in arrivo e di inviare un messaggio rapido alla console (la riga di comando) per farci sapere che è in esecuzione. Se vuoi provarlo tu stesso, salva il codice sopra come test.js, scarica il programma di installazione del nodo e dalla riga di comando -
nodo test.js
Apri un browser e vai a localhost: 8080 per vedere la tua app di prova! Ora dovresti avere una piccola idea di come funzioni tutta la cosa asincrona, insieme ai modelli basati sugli eventi. Se sei nuovo in JavaScript, il concetto di passare le funzioni come argomenti ad altre funzioni è probabilmente un po 'strano.
Perché usare il nodo?
In primo luogo, per prestazioni e scalabilità. Il nodo è veloce. Questo è un requisito piuttosto importante quando sei una start-up che cerca di fare la prossima grande cosa e vuoi essere sicuro di poter scalare rapidamente, facendo fronte a un afflusso di utenti man mano che il tuo sito cresce. Il nodo è anche perfetto per offrire un API RESTful - un servizio web che accetta alcuni parametri di input e restituisce un po 'di dati indietro - semplice manipolazione dei dati senza un'enorme quantità di calcoli. Il nodo può gestire migliaia di questi in concomitanza in cui PHP potrebbe solo collassare. A parte i vantaggi prestazionali e la scalabilità, c'è una buona possibilità che tu conosca già qualche JavaScript, quindi perché preoccuparsi di imparare una lingua completamente nuova come PHP? E poi - c'è l'eccitazione di imparare qualcosa di nuovo e relativamente inesplorato. Sai quando arriva qualcosa di nuovo e poi diventa così onnipresente da rimpiangere di non averlo imparato prima, giocando per sempre? Non farlo questa volta. Il nodo sarà grande.
Svantaggi
Come la maggior parte delle nuove tecnologie, non è così facile implementare il nodo sugli host esistenti. Se hai un hosting web condiviso, non puoi semplicemente caricare un'app Node e aspettarti che funzioni. VPS e server dedicati sono posizionati meglio - è possibile installare il nodo su di essi. Ancora più semplice è utilizzare un servizio scalabile come Heroku, che è completamente gratuito per sviluppare il tuo sito su - devi solo pagare quando hai bisogno di più risorse. Ho dato un esempio di utilizzo di Heroku in precedenza quando lo abbiamo usato per creare un fangate di Facebook, ma può essere utilizzato anche per il nodo. D'altra parte, è molto semplice installare Nodo localmente sul tuo PC Windows, Mac o Linux e iniziare a sviluppare immediatamente - basta andare su Download Node. È anche importante notare che Node non è semplicemente un rimpiazzo per Apache - le applicazioni Web esistenti non sono compatibili, e lavorerai in modo efficace da zero (anche se ci sono molti framework disponibili per aiutarti con le funzionalità comuni). L'altro importante svantaggio del nodo è che è ancora nelle prime fasi di sviluppo, il che significa che alcune caratteristiche potrebbero cambiare con il progredire dello sviluppo. In effetti, se si guarda la documentazione, include un indice di stabilità, che mostra l'utilizzo rischioso di ciascuna caratteristica al momento. Sai - non è mai stato un momento più eccitante per diventare uno sviluppatore web. Con i servizi web aperti e lo scambio di dati, è più facile che mai fare qualcosa eccezionale. Stai pensando di imparare Nodo? Buono. Vai avanti e fai il prossimo Twitter! Probabilmente vorrai anche una buona conoscenza della libreria jQuery Javascript jQuery Tutorial - Per iniziare: Nozioni di base e selettori jQuery Tutorial - Per iniziare: Nozioni di base e selettori La settimana scorsa, ho parlato di quanto sia importante jQuery per qualsiasi sviluppatore web moderno e perché è eccezionale. Questa settimana, penso che sia ora che ci sporchiamo le mani con un po 'di codice e abbiamo imparato come ... Leggi altro per il front-end.
Scopri di più su: JavaScript, Programmazione, Web design, Sviluppo Web.