Logo de Código Facilito
  • Inicio
  • Replays
  • Iniciar sesión
  • Crear cuenta
  • Explorar cursos
  • Bootcamps
  • Precios
  • Blog

¡Califica el Curso para desarrollar servicios web REST con Nodejs!

Selecciona la calificación de 1 a 5 estrellas

Reporta un error

Curso Curso para desarrollar servicios web REST con Nodejs

Video Qué es un Middleware en Express

Tipo de error

Algo salió mal al cargar el vídeo

El vídeo no pudo cargarse, hemos enviado un reporte al equipo de desarrollo, para poder solucionarlo a la brevedad.

Mientras solucionamos el problema, intenta lo siguiente para solucionar el error:

  • Recarga la página
  • Intenta reiniciar tu navegador y luego vuelve a reproducir el vídeo
  • Vacía el caché de tu navegador
  • Intenta reproducir con las extensiones del navegador deshabilitadas
  • Intenta con un navegador distinto
  • Si el problema persiste contáctanos en Discord
home Ir al inicio report_problem Reportar falla star Valorar curso

El concepto de middlewares es popular en muchos frameworks, de Desarrollo Web. Están por ejemplo los que dependen fuertemente del concepto como por ejemplo Express, los que lo usan detrás de cámaras o como una configuración avanzada, como lo hace Ruby on Rails, etc.

Un Middleware tiene como propósito tomar dos piezas de la aplicación y conectarlas, como un puente en el que fluye la información. Normalmente decimos que una rutina de código tiene como propósito recibir información y retornarla transformada, la única característica especial de un Middleware es que la información la obtiene de otra función de código para luego enviársela a una función distinta más.

Los middlewares en Express se montan por múltiples razones, una de ellas por ejemplo es validar la información antes de que llegue a la rutina que enviará respuesta hacia el cliente, también pueden usarse para hacer una consulta y guardar información antes de que pase a las funciones que responderán.

Un middleware en Express es una función, cuyo único distintivo es que recibe 3 argumentos:

function(req,res,next){}

Los primeros dos argumentos, como cualquier función que responde respuestas del cliente contiene la información de la solicitud en el primer argumento Request, y el objeto Response como segundo argumento, que nos sirve para modificar la respuesta que se enviará a el usuario.

El tercer argumento es muy importante, este es el que distingue un middleware de una función de respuesta. Este tercer argumento es una función que contiene el siguiente middleware o función a ejecutar luego de que el actual termine su ejecución.

Esta función next termina la ejecución de nuestro middleware y puede hacerlo de dos formas.

  1. Con éxito, la función next en este caso no recibe argumentos al ejecutarse, indicándole al siguiente punto de la ejecución que todo salió bien.
  2. Con un error, el error se envía como argumento de la función, indicando al siguiente punto de la ejecución que algo salió mal y no puede continuar con la respuesta de la petición del cliente.

Todo salió bien:

function miMiddleware(req,res,next){
   next();
}

Enviamos un error en el middleware

function miMiddleware(req,res,next){
  if(user.permisos != "admin"){
       next(new Error('No tienes permisos para estar aquí'));
   }
}

Estas funciones se montan en el proceso de respuesta a una petición usando el método use del objeto app

const express = require('express');
const app = express();

function miMiddleware(req,res,next){
   next();
}

app.use(next) //Esto indica que antes de cualquier función de respuesta se debe ejecutar este middleware

O bien como parte de la respuesta de una ruta:



const express = require('express');
const app = express();

function miMiddleware(req,res,next){
   next();
}

app.get('/',miMiddleware,function(req,res){
   /* Se ejecutará esta función luego del middleware */
});

En ambos casos, es posible que podamos colocar cuantos middlewares queramos definir, lo importante es que cada uno llame la función next, sin argumentos, para que el siguiente middleware se ejecute hasta llegar a la función de respuesta.

Ahora, pasemos al siguiente tema donde veremos cómo integrar este conocimiento en nuestro proyecto.

  • check_circle_outline
    Módulo 1 | 7 clases

    Introducción

    expand_more
  • check_circle_outline
    Módulo 2 | 6 clases

    Conceptos Fundamentales

    expand_more
  • check_circle_outline
    Módulo 3 | 10 clases

    Bases de Datos y CRUDs

    expand_more
  • check_circle_outline
    Módulo 4 | 15 clases

    Más allá de lo básico

    expand_more
    • done_all

      Clase 1

      Crear rutas

    • done_all

      Clase 2

      Controladores

    • done_all

      Clase 3

      Paginación

    • done_all

      Clase 4

      Qué es un Middleware en Express

    • done_all

      Clase 5

      Middleware para búsqueda individual

    • done_all

      Clase 6

      Configurar cloudinary

    • done_all

      Clase 7

      Definir archivo con secretos

    • done_all

      Clase 8

      Subir imágenes a cloud

    • done_all

      Clase 9

      Subir imágenes pt 2

    • done_all

      Clase 10

      Mover imágenes a la nube

    • done_all

      Clase 11

      Guardar información de las imágenes en la base de datos

    • done_all

      Clase 12

      Generar SEO URLs

    • done_all

      Clase 13

      Evitar colisiones con las SEO URls

    • done_all

      Clase 14

      Cambiar búsqueda de ID a Slug

    • done_all

      Clase 15

      Manejo de parámetros

  • check_circle_outline
    Módulo 5 | 6 clases

    Autenticación de usuarios

    expand_more
  • check_circle_outline
    Módulo 6 | 5 clases

    Relaciones básicas uno a muchos

    expand_more
  • check_circle_outline
    Módulo 7 | 9 clases

    Relaciones muchos a muchos

    expand_more
  • check_circle_outline
    Módulo 8 | 11 clases

    Seguridad en servicios web

    expand_more

Qué es un Middleware en Express

arrow_back Siguiente arrow_forward
Curso para desarrollar servicios web REST con Nodejs