Tutorial Node.js - Una guida completa per principianti

Questo tutorial di Node.js parlerà dell'architettura di base, del funzionamento e dei vari moduli di Node.js. Dimostrerà anche un'implementazione pratica di Node.js e Express.js.

Se hai mai sentito parlare di Node.js, potresti sapere che è uno dei framework più importanti e potenti di JavaScript. Dal suo rilascio, ha continuato a mantenere la sua stretta sul mercato IT. Anche con l'introduzione di nuovi e vivaci piace , , Meteor ecc., La popolarità di Node.js sembra non cessare mai. Chiedersi perché? Bene, con l'aiuto di questo tutorial di Node.js, ti fornirò una panoramica completa. Quindi, preparati ad innamorarti di Node.js.

In questo tutorial di Node.js, tratterò i seguenti argomenti:





Cos'è Node.js?

Node.js è un potente framework sviluppato su Il motore JavaScript V8 di Chrome che compila JavaScript direttamente nel codice macchina nativo. È un framework leggero utilizzato per la creazione di applicazioni Web lato server ed estende l'API JavaScript per offrire le normali funzionalità lato server. Viene generalmente utilizzato per lo sviluppo di applicazioni su larga scala, in particolare per siti di streaming video, applicazioni a pagina singola e altre applicazioni Web. Node.js fa utilizzo di un modello I / O basato su eventi e non bloccante che lo rende la scelta giusta per le applicazioni in tempo reale ad alta intensità di dati.

Come qualsiasi altro linguaggio di programmazione, node.js fa uso di pacchetti e moduli. Queste sono le librerie che contengono varie funzioni e vengono importate da npm (node ​​package manager) nel nostro codice e utilizzate nei programmi. Di seguito sono elencate alcune delle caratteristiche principali che definiscono Node.js:



Caratteristiche di Node.js

  1. Open Source
    Node.js è una licenza MIT framework open source supportata da una vasta comunità. La sua comunità è praticamente attiva e ha contribuito ad aggiungere nuove funzionalità alle applicazioni Node.js.
  2. Semplice e veloce
    Poiché Node.js è basato sul motore JavaScript V8 di Google Chrome, le sue librerie sono in grado di eseguire rapidamente il codice.
  3. Asincrono
    Tutte le librerie di Node.js sono asincrone, il che significa che i server basati su Node.js non aspettano mai che un'API restituisca la risposta e passi all'API successiva.
  4. Elevata scalabilità
    A causa del meccanismo degli eventi, Node.js è altamente scalabile e aiuta il server in una risposta non bloccante.
  5. Filettatura singola
    Con l'aiuto del loop di eventi, Node.js è in grado di seguire il modello a thread singolo. Ciò consente a un singolo programma di gestire più richieste.
  6. Nessun buffering
    Una delle principali funzionalità delle applicazioni Node.js è che non memorizza mai i dati nel buffer.
  7. Cross-platform
    Node.js può essere facilmente creato e distribuito su varie piattaforme come Windows, MAC e Linux.

Andiamo ora avanti e vediamo come distribuire il codice effettivo sul browser. Ma prima, devi scaricare e installare nei tuoi sistemi. Puoi fare riferimento al mio altro articolo per conoscere il completo Processo di installazione di Node.js. .

Quindi ora, andiamo oltre in questo tutorial di Node.js, dove parlerò del componente più importante di Node.js, ovvero npm.

NPM (Node Package Manager)

NPM sta per Node Package Manager che, come suggerisce il nome, è un gestore di pacchetti per pacchetti / moduli Node.js. Dalla versione 0.6.0 di Node. in poi, npm è stato aggiunto come predefinito nell'installazione del nodo. Ti evita il fastidio di installare npm in modo esplicito.



Fondamentalmente NPM aiuta in due modi:

come creare un jframe in java
  1. Fornisce e ospita repository online per pacchetti / moduli node.js che possono essere facilmente scaricati e utilizzati nei nostri progetti. Li puoi trovare qui: npmjs.com
  2. Fornisce l'utilità della riga di comando per installare vari pacchetti Node.js, gestire le versioni di Node.js e le dipendenze dei pacchetti.

Ma ora, ti starai chiedendo cosa siano esattamente questi moduli e come ci aiutano a creare le applicazioni Node.js. Bene, nella prossima sezione di questo tutorial di Node.js, ti fornirò una panoramica completa dei moduli di Node.js.

Moduli Node.js

I moduli in Node.js rappresentano varie funzionalità che sono raggruppate in uno o più file JS. Questi moduli hanno un contesto unico, quindi, non interferiscono né inquinano l'ambito di altri moduli.

Questi moduli consentono il riutilizzo del codice e ne migliorano la facilità d'uso. Node.js fornisce fondamentalmente tre tipi di moduli:

  1. Moduli principali
  2. Moduli locali
  3. Moduli di terze parti

Modulo principale

Poiché Node.js è molto leggero framework, i moduli principali raggruppano le funzionalità minime assolute. Questi moduli vengono generalmente caricati quando il processo Node inizia la sua esecuzione. Tutto quello che devi fare è importare questi moduli principali per poterli utilizzare nel tuo codice.

Di seguito ho elencato alcuni degli importanti moduli Core.

Modulo principale Descrizione
http Contiene classi, metodi ed eventi necessari per creare il server HTTP Node.js.
url Contiene metodi per la risoluzione dell'URL e l'analisi in Node
stringa della domanda Contiene metodi per gestire una stringa di query di Node
sentiero Contiene metodi per gestire i percorsi dei file
fs Contiene classi, metodi ed eventi per lavorare con l'I / O di file
Utile Contiene funzioni di utilità che possono essere utili per i programmatori

Puoi caricare il tuo modulo principale, utilizzando il codice seguente:

var module = require ('module_name')

Vediamo ora cosa sono i 'moduli locali'.

Moduli locali

I moduli locali di Node.js sono moduli personalizzati creati localmente dall'utente / sviluppatore nell'applicazione. Questi moduli possono includere varie funzionalità raggruppate in file e cartelle distinti che possono essere facilmente distribuiti nella comunità Node.js utilizzando NPM.

Questi moduli vengono caricati in modo simile ai moduli principali. Lascia che ti mostri come farlo usando un esempio di base.

Crea il tuo file module.js personalizzato / locale

var dettaglio = {nome: funzione (nome) {console.log ('Nome:' + nome)}, dominio: funzione (dominio) {console.log ('Dominio:' + dominio)}} module.exports = dettaglio

Includere il file del modulo nel file dell'applicazione principale.

var myLogModule = require ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Education')

Ora puoi eseguire questi file usando il comando seguente:

node application.js

Permettimi ora di mostrarti cosa sono i moduli esterni.

Moduli esterni

Puoi usare l'esterno o 3rdmoduli party solo scaricandoli tramite NPM. Questi moduli sono generalmente sviluppati da altri sviluppatori e possono essere utilizzati gratuitamente. Pochi dei migliori moduli esterni sono express, react, gulp, mongoose, mocha ecc.

Caricamento globale dei moduli di terze parti:

installazione di npm --g

Includere il file del modulo nel file dell'applicazione principale:

npm install --save

File JSON

Il file package.json in Node.js è il cuore dell'intera applicazione. È fondamentalmente il file manifest che contiene i metadati del progetto. Pertanto, la comprensione e l'utilizzo di questo file diventa molto importante per lo sviluppo di un progetto Node di successo.

Il file package.json è generalmente costituito dai metadati dell'applicazione, che sono ulteriormente classificati nelle seguenti due categorie:

  1. Identificazione delle proprietà dei metadati: Consiste di proprietà come il nome del progetto, la versione corrente del modulo, la licenza, l'autore del progetto, la descrizione del progetto ecc.
  1. Scrittura direttamente su file: Puoi scrivere direttamente le informazioni necessarie nel file package.json e includerle nel tuo progetto.

Ormai hai già familiarizzato con i vari componenti dell'applicazione Node JS. Nella prossima sezione di questo tutorial di Node.js, condividerò alcune nozioni di base di Node Js in modo che possiamo iniziare con le mani.

Nozioni di base su Node.js

Poiché Node.js è un framework JavaScript, utilizza la sintassi JavaScript. Se vuoi imparare JavaScript in dettaglio, puoi fare riferimento a questo . Per ora, ti rispolverò con alcune nozioni di base di Node.js come:

Tipi di dati

Come qualsiasi altro linguaggio di programmazione, Node.js ha vari tipi di dati, che sono ulteriormente classificati in tipi di dati primitivi e non primitivi.

I tipi di dati primitivi sono:

  1. Corda
  2. Numero
  3. Booleano
  4. Nullo
  5. Non definito

I tipi di dati non primitivi sono:

  1. Oggetto
  2. Data
  3. Vettore

Variabili

Le variabili sono entità che contengono valori che possono variare nel corso di un programma. Per creare una variabile in Node.js, è necessario utilizzare una parola chiave riservata var. Non è necessario assegnare un tipo di dati, poiché il compilatore lo selezionerà automaticamente.

Sintassi:

var varName = valore

Operatori

Node.js supporta i seguenti operatori:

Tipo di operatore Operatori
Aritmetica +, -, /, *,%, ++, -
Incarico =, + =, - =, * =, / =,% =
Condizionale =?
Confronto ==, === ,! = ,! ==,>,> =,<, <=,
Logico &&, || ,!
Bitwise &, |, ^, ~,<>, >>>

Funzioni

Functions in Node.js è un blocco di codice che ha un nome ed è scritto per ottenere un compito particolare. È necessario utilizzare la funzione parola chiave per crearlo. Una funzione è generalmente un processo in due fasi. Il primo è definire la funzione e il secondo è invocarlo. Di seguito è riportata la sintassi per creare e richiamare una funzione:

Esempio:

// Definizione di una funzione function display_Name (firstName, lastName) {alert ('Hello' + firstName + '' + lastName)} // Invocare la funzione display_Name ('Park', 'Jimin')

Oggetti

Un oggetto è un tipo di dati non primitivo che può contenere più valori in termini di proprietà e metodi. Gli oggetti Node.js sono entità autonome poiché non esiste il concetto di classe. Puoi creare un oggetto in due modi:

  1. Utilizzo di Object literal
  2. Utilizzo del costruttore di oggetti

Esempio:

// oggetto con proprietà e metodo var dipendente = {// proprietà firstName: 'Minho', lastName: 'Choi', età: 35, stipendio: 50000, // metodo getFullName: function () {return this.firstName + '' + this.lastName}}

File System

Per accedere al file system fisico, Node.js utilizza l'estensione fs modulo che fondamentalmente si occupa di tutte le operazioni di I / O di file asincrone e sincrone. Questo modulo viene importato utilizzando il comando seguente:

var fs = require ('fs')

Alcuni degli usi generali per i moduli del file system sono:

  • Leggi i file
    1. fs.readFile ()
var http = require ('http') var fs = require ('fs') http.createServer (function (req, res) {fs.readFile ('script.txt', function (err, data) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}). Listen (8080)
  • Crea file
    1. appendFile ()
    2. Aperto()
    3. writeFile ()
  • Aggiorna i file
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Cancella file
    1. fs.unlink ()
  • Rinomina i file
    1. fs.rename ()

Quindi, con questi comandi, puoi praticamente eseguire tutte le operazioni richieste sui tuoi file. Andiamo ora oltre con questo tutorial di Node.js e vediamo cosa sono gli eventi e come vengono gestiti in Node.js.

Eventi

Come ho già accennato, le applicazioni Node.js sono a thread singolo e guidate dagli eventi. Node.js supporta la concorrenza poiché è guidata dagli eventi e quindi fa uso di concetti come eventi e callback. La funzione async chiama help Node.js nel mantenere la concorrenza in tutta l'applicazione.

Fondamentalmente, in un'applicazione Node.js, c'è un ciclo principale che attende e ascolta gli eventi e, una volta completato un evento, avvia immediatamente una funzione di callback.

Il diagramma sottostante rappresenta il modo in cui gli eventi vengono gestiti in Node.js.

Thread Model - Tutorial Node.js - Edureka

Una cosa che devi notare qui è che, anche se gli eventi sembrano simili alle funzioni di callback, ma la differenza sta nelle loro funzionalità. Quando una funzione asincrona restituisce i suoi risultati, vengono richiamati i callback, d'altra parte la gestione degli eventi funziona completamente sul pattern dell'osservatore. E in Node.js, i metodi che ascoltano gli eventi sono chiamati osservatori. Nel momento in cui viene attivato un evento, la sua funzione di ascolto inizia automaticamente l'esecuzione. I moduli degli eventi e la classe EventEmitter forniscono più eventi incorporati che vengono utilizzati per associare gli eventi ai listener di eventi. Di seguito ho scritto la sintassi per questo.

Evento vincolante a un listener di eventi

// Modulo di importazione eventi var my_Events = require ('events') // Crea un oggetto eventEmitter var my_EveEmitter = new my_Events.EventEmitter ()

Associazione del gestore eventi a un evento

// Binding evento e gestore di eventi my_EveEmitter.on ('eventName', eventHandler)

Sparare un evento

c ++ ordinamento array in ordine crescente
// Attiva un evento my_EveEmitter.emit ('eventName')

Ora proviamo a implementare le cose che ho discusso in questa sezione Evento Node.js.Il codice seguente mostra una semplice rappresentazione dell'esecuzione di eventi in Node.js.

var emitter = require ('events'). EventEmitter function iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Processing Iteration:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('Avvio del processo per' + info)}) it.on ('AfterProcess', function (info) {console.log ('Finishing processing for' + info)

Nella sezione successiva di questo tutorial di Node.js, ti fornirò approfondimenti su uno dei moduli più importanti di Node.js chiamato HTTP Module.

Modulo HTTP

In genere, Node.js viene utilizzato per lo sviluppo di applicazioni basate su server. Ma utilizzando il modulo, è possibile creare facilmente server Web in grado di rispondere alle richieste del client. Quindi è anche indicato a Web Module e fornisce moduli come HTTP e request che facilitano Node.js nell'elaborazione delle richieste del server.

Puoi facilmente includere questo modulo nella tua applicazione Node.js semplicemente scrivendo il codice seguente:

var http = require ('http')

Di seguito ho scritto un codice, che mostra come si sviluppa un Web Server in Node.js.

// chiamando la libreria http var http = require ('http') var url = require ('url') // creazione del server var server = http.createServer (function (req, res) {// impostazione dell'intestazione del contenuto res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // invia la stringa alla risposta res.end (txt)}) // assegnando 8082 come porta di ascolto del server server.listen (8082)

Nella prossima sezione di questo tutorial di Node.js, parlerò di Express.js che è ampiamente utilizzato per lo sviluppo di applicazioni web lato server.

Express.js

Express.js è un framework costruito su Node.js che facilita la gestione del flusso di dati tra server e route nelle applicazioni lato server. È un framework leggero e flessibile che fornisce un'ampia gamma di funzionalità richieste per il Web e lo sviluppo di applicazioni mobili.

Express.js è sviluppato sul modulo middleware di Node.js chiamato Collegare . Il modulo di connessione fa inoltre uso di http modulo per comunicare con Node.js. Pertanto, se si lavora con uno qualsiasi dei moduli middleware basati sulla connessione, è possibile integrarlo facilmente con Express.js.

Non solo questo, alcuni dei principali vantaggi di Express.js sono:

  • Rende più veloce lo sviluppo di applicazioni web
  • Aiuta nella creazione di applicazioni mobili e web di tipo a pagina singola, multipagina e ibrida
  • Express fornisce due motori di creazione di modelli, ovvero Jade ed EJS
  • Express segue l'architettura Model-View-Controller (MVC)
  • Rende l'integrazione con database come MongoDB, Redis, MySQL
  • Definisce un middleware per la gestione degli errori
  • Semplifica la configurazione e la personalizzazione facile per l'applicazione.

Con tutte queste caratteristiche, Express si assume la responsabilità della parte di backend nello stack MEAN. Mean Stack è lo stack software JavaScript open source utilizzato per la creazione di siti Web dinamici e applicazioni Web. Qui, SIGNIFICARE sta per M ongoDB, E xpress.js, PER ngularJS e N ode.js.

Vediamo ora un semplice esempio per capire come Express.js funziona con Node.js per facilitare il nostro lavoro. Ma prima di iniziare a lavorare con Express.js, devi installarlo nel tuo sistema.

Per installare Express.js a livello globale puoi utilizzare il comando seguente:

npm install -g express

Oppure, se vuoi installarlo localmente nella cartella del tuo progetto, devi eseguire il comando seguente:

sort int array c ++
npm install express --save

Dato che abbiamo terminato tutti i preparativi, passiamo ora direttamente all'attuazione pratica. Qui, mostrerò una semplice applicazione di autenticazione utente utilizzando Node.js ed Express.js.

Node.js Tutorial Sviluppo di applicazioni passo dopo passo con Express.js

Per questo, avremo bisogno dei file seguenti:

  • package.json
  • script.js
  • visualizzazioni
    • index.jade
    • login.jade
    • secure.jade
    • unauthorized.jade
    • benvenuto.jade
  • lib
    • route.js

Quindi, iniziamo con package.json .

{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express with Node.js', 'version': '0.0.0', 'scripts': {'start': 'node script.js '},' engine ': {' node ':' ~ 0.4.12 '},' dependencies ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}

Successivamente, è necessario creare il file script.js .

var express = require ('express') var http = require ('http') var port = 8999 var app = express () const flash = require ('connect-flash') var cookieParser = require ('cookie-parser') var server = http.createServer (app) function checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // don't serve / secure to those not logg in if (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('unauthorized', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({secret: 'example'})) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) require ('./ lib / routes.js') (app) app.listen (port) console .log ('Nodo in ascolto sulla porta% s', porta)

Ora, crea una cartella denominata view, in cui aggiungerai i file jade che saranno responsabili di varie visualizzazioni di pagina. Il primo file di visualizzazione che devi creare è index.jade .

!!! 5 html (lang = 'en') head title Autenticazione utente Corpo d'esempio h1 center Autenticazione Demo utilizzando Express h3 Vai a h4 ul li: a (href = '/ secure') Contenuto protetto li: a (href = '/ welcome') Pagina di benvenuto li: a (href = '/ logout') Logout

Ora crea il file login.jade file.

!!! 5 html (lang = 'en') head title Esempio di autenticazione Express body h1 center Accedi a questo centro di esempio di autenticazione Express p Usa utente per il nome utente e passaggio per la password. form (method = 'post') p label (for = 'username') Email Address input (type = 'text', name = 'username', class = 'form-control', id = 'exampleInputPassword1', placeholder = ' Email ', style =' width: 400px ') p center label (for =' password ') Password input (type =' password ', name =' password ', class =' ​​form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Submit - ogni messaggio in flash h4 (style = 'color: red') # {message}

Il prossimo passo è creare il file benvenuto.jade .

!!! 5 html (lang = 'en') head title Esempio di autenticazione dell'utente body h1 center Benvenuto al tutorial di Edureka!

Quindi, crea il file secure.jade file.

!!! 5 html (lang = 'en') head title Esempio di autenticazione espressa body h1 center Ciao, utente sicuro. p Accedere a ul li: a (href = '/ secure') Contenuto protetto li: a (href = '/ welcome') Pagina di benvenuto li: a (href = '/ logout') Logout

Ora crea il file unauthorized.jade file.

!!! 5 html (lang = 'en') head title Esempio di autenticazione utente body h1 center Non autorizzato p Non sei autorizzato a visualizzare questa pagina. p Per favore ' continuare

Ora, devi creare una cartella e assegnarle un nome lib . Ora crea un file route.js file che mapperà tutte le pagine.

var util = require ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / welcome ', function (req, res, next) {res.render (' welcome ')}) app.get (' / secure ', function (req, res, next) {res.render (' secure ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}) app.post ('/ login', function ( req, res, next) {// potresti voler fare una ricerca nel database o qualcosa di più scalabile qui if (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('error', 'Username and password are wrong') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}

Ora, se vuoi eseguire questo codice da solo, puoi scaricarlo da qui: PDF tutorial di Node.js .

Con questo, arriviamo alla fine di questo tutorial di Node.js. Spero di essere stato in grado di spiegare i concetti di Node.js da zero.

Se hai trovato questo 'Node.js Tutorial 'Rilevante, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo tutorial di Node.js e ti risponderemo.