English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base NodeJS

NodeJS Express.js

NodeJS Buffer&URL;

NodeJS MySql

NodeJS MongoDB

File NodeJS (FS)

Altri NodeJS

Middleware in Express.js

Middleware Express.js

Cos'è il middleware?

Il middleware è una funzione che può accedere agli oggetti di richiesta e risposta e utilizzare la funzione next nel ciclo di richiesta-risposta dell'applicazione.

In questo tutorial, impareremo come definire le funzioni middleware in un'applicazione Express di Node.js e come chiamare le funzioni middleware.

Terminologia middleware

request – È la richiesta HTTP che arriva all'applicazione Express quando il client emette una richiesta HTTP (ad esempio PUT, GET, ecc.), contenente proprietà come stringa di ricerca, parametri URL, intestazioni, ecc.

response– Oggetto che rappresenta la risposta HTTP inviata dall'applicazione Express quando riceve una richiesta HTTP.

next – next per continuare con il middleware successivo nella pila.

request-response cycle(Ciclo di richiesta-risposta) – Esegui il ciclo di operazioni che avvengono dall'inizio della richiesta all'applicazione Express fino alla partenza della risposta per la richiesta.

Stack di middleware– Stack di funzioni middleware eseguite nel ciclo di richiesta-risposta.

Definire la funzione middleware

Come abbiamo già menzionato nella definizione della funzione middleware, può accedere alla richiesta, all'oggetto di risposta e alla funzione successiva.

La sintassi è la stessa della sintassi delle funzioni JavaScript. Accetta come parametri la richiesta, l'oggetto di risposta e la funzione successiva.

 
 function logger(req, res, next) { 
    
 }

 Qui logger è il nome della funzione, req è l'oggetto di richiesta HTTP, res è l'oggetto di risposta del nodo, next è la funzione successiva nel ciclo di richiesta-risposta.

Puoi accedere a tutte le proprietà e metodi dell'oggetto request req.

Anche così, puoi accedere a tutte le proprietà e metodi dell'oggetto response res.

La chiamata alla funzione all'interno della funzione middleware next è opzionale. Se si utilizza la statement next(), si continua a eseguire il prossimo middleware nel ciclo di richiesta-risposta. Se non si chiama la funzione next(), l'esecuzione della richiesta data si fermerà qui.

function logger(req, res, next) { 
    // Il tuo codice
    next() // Chiamata alla funzione successiva nella pila di middleware
 }

Chiamata middleware

Nell'applicazione Express, puoi chiamare il middleware utilizzando la funzione use sull'oggetto dell'applicazione.

var express = require('express') 
var app = express() 
 
function logger(req, res, next) { 
   // Il tuo codice
   next() 
 } 
 
app.use(logger)

Esempio di middleware Express.js

In questo esempio, definiremo un middleware chiamato logger che registrerà l'ora corrente e la stringa di ricerca nella console.

app.js

var express = require('express') 
var app = express() 
 
// Definisci la funzione middleware
function logger(req, res, next) { 
   console.log(new Date(), req.url) 
   next() 
 } 
 
// Chiama il middleware logger in ogni ciclo di richiesta-risposta
app.use(logger) 
 
// Esegui la rotta per il percorso " / "
app.get('/', function(req, res) { 
   res.send('Questo è un esempio di base per Express.js di w3codebox') 
 ) 
 
// Avvio del server
var server = app.listen(8000, function() { 
    console.log('In ascolto sulla porta 8000...') 
 )

Avvia questa applicazione e poi clicca sul seguente URL nel browser.

  • http://localhost:8000/

  • http://localhost:8000/hello-page/

L'output sarà

Per ogni richiesta dell'applicazione in ascolto su 8000, abbiamo aggiunto una funzione middleware. Per l'URL http://localhost:8000/, l'URL è /, quindi l'output del logger è l'ora corrente e '/' . Lo stesso per l'URL '/hello-page/' .