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

Tutorial básico de NodeJS

Express.js de NodeJS

Buffer & URL de NodeJS

MySql de NodeJS

MongoDB de NodeJS

Archivo de NodeJS (FS)

Otros de NodeJS

Middlewares en Express.js

Middleware de Express.js

¿Qué es el middleware?

Un middleware es una función que puede acceder a los objetos de solicitud y respuesta y también usar next en la solicitud de la aplicación.-Se utiliza esta función durante el ciclo de respuesta.

En este tutorial, aprenderemos cómo definir funciones de middleware en una aplicación Express de Node.js y cómo llamar a las funciones de middleware.

Término de middleware

Solicitud – Es la solicitud HTTP que llega a la aplicación Express cuando el cliente emite una solicitud HTTP (por ejemplo, PUT, GET, etc.), contiene propiedades como la cadena de consulta, los parámetros de URL, las cabeceras, etc.

Respuesta– El objeto representa la respuesta HTTP que la aplicación Express envía al recibir una solicitud HTTP.

next – next se utiliza para continuar con el siguiente middleware en la pila de middleware.

Solicitud-Ciclo de respuestaSolicitud-Ciclo de respuesta) – Desde que la solicitud ingresa a la aplicación Express hasta que la respuesta sale de la aplicación para la solicitud siguiente, se ejecuta el ciclo de operaciones.

Pila de middleware– En la solicitud-Pila de funciones de middleware ejecutadas durante el ciclo de respuesta.

Definir la función del middleware

Como ya hemos mencionado en la definición de la función de middleware, puede acceder a la solicitud, el objeto de respuesta y la siguiente función.

La sintaxis es la misma que la de las funciones JavaScript. Acepta como parámetros la solicitud, el objeto de respuesta y la siguiente función.

 
 function logger(req, res, next) { 
    
 }

 Aquí logger es el nombre de la función, req es el objeto de solicitud HTTP, res es el objeto de respuesta del nodo, next es la solicitud-响应周期中的下一个函数。

La próxima función en el ciclo de respuesta de la respuesta.

Puede acceder a todas las propiedades y métodos del objeto de solicitud req.

Del mismo modo, puede acceder a todas las propiedades y métodos del objeto de respuesta res.-La función llamada dentro de la función middleware next() es opcional. Si se utiliza la declaración next(), se accederá a las propiedades y métodos del objeto de solicitud en la solicitud

function logger(req, res, next) { 
    // Su código
    next() // Llamar a la próxima función en la pila de middleware. En el ciclo de respuesta de la respuesta, continuar ejecutando el siguiente middleware. Si no llama a la función next(), la ejecución de la solicitud dada se detendrá aquí.
 }

Llamar al middleware

En la aplicación Express, puede usar la función use del objeto de aplicación para llamar al middleware.

var express = require('express') 
var app = express() 
 
function logger(req, res, next) { 
   // Su código
   next() 
 } 
 
app.use(logger)

Ejemplo de middleware de Express.js

En este ejemplo, definiremos un middleware llamado logger que registrará la hora actual y la cadena de consulta en la consola.

app.js

var express = require('express') 
var app = express() 
 
// Definir la función del middleware
function logger(req, res, next) { 
   console.log(new Date(), req.url) 
   next() 
 } 
 
// En cada solicitud-Llamar al middleware logger durante el ciclo de respuesta
app.use(logger) 
 
// para la ruta “ /”执行的路由
app.get('/', function(req, res) { 
   res.send('Este es un ejemplo básico para Express.js por w3codebox') 
 ) 
 
// Iniciar el servidor
var server = app.listen(8000, function() { 
    console.log('Escuchando en el puerto 8000...') 
 )

Arranque esta aplicación y luego haga clic en la siguiente URL en el navegador.

  • http://localhost:8000/

  • http://localhost:8000/hola-/

La salida será

Para escuchar8000//localhost:8000/La URL es/ Por lo tanto, la salida del logger es la hora actual y'/Del mismo modo, esto es también cierto para la url/hola-/。',