Saltar al contenido

¿Cuál es la diferencia entre un controlador y un middleware?

Nuestros investigadores estrellas agotaron sus provisiones de café, por su búsqueda noche y día por la resolución, hasta que Alfredo halló el arreglo en Gogs y ahora la comparte contigo.

Solución:

Debería ver el middleware como un paso en su API y los controladores como la entidad que realmente responderá a las solicitudes.

A continuación se muestra un ejemplo donde authenticationMiddleware es un middleware porque es un paso durante el procesamiento pero no debe devolver la respuesta. Sin embargo, puede hacerlo en caso de error.

Después getItems en realidad maneja la lógica específica de estas llamadas.

Como regla general, el middleware a menudo se reutiliza más de una vez y, a menudo, no responde. Por el contrario, los controladores responden y la mayoría de las veces son específicos de un punto final.

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

function authenticationMiddleware(req, res, next) 
  // Check that the user is authenticated using req.headers.Authorization
  // for example

  if (authenticated) 
    // The user is authenticated, we can go to the next step
    next();

   else 
    // The user is not authenticated, we stop here
    res.status(401);
    res.send("Error during authentication");
  


function getItems(req, res, next) 
  // Here we focus on the actual response, we assume that the user is authenticated
  res.send( items: [] );


app.get("/items", authenticationMiddleware, getItems);
app.post("/items", authenticationMiddleware, createItems); // Re-use the same middleware

app.listen(3000);

Si se refiere a la terminología de nodo/express, software intermedio son simplemente los devoluciones de llamada utilizado por las funciones/métodos de enrutamiento (obtener, establecer, eliminar, usar, etc.). Las devoluciones de llamada pueden enviar o no enviar respuestas al cliente. los devoluciones de llamada son realmente los ‘controladores’ si desea llamarlos así (por ejemplo: ASP.NET Core MVC), pero eso depende de usted. A continuación se muestra una cita de Express. Tenga en cuenta el término ‘middleware’ y ninguna mención de ‘controlador’.

Las funciones de middleware son funciones que tienen acceso al objeto de solicitud (req), al objeto de respuesta (res) ya la siguiente función de middleware en el ciclo de solicitud-respuesta de la aplicación. La siguiente función de middleware se indica comúnmente mediante una variable llamada next.

Las funciones de middleware pueden realizar las siguientes tareas:

  • Ejecutar cualquier código.
  • Realice cambios en los objetos de solicitud y respuesta.
  • Terminar el ciclo de solicitud-respuesta.
  • Llame a la siguiente función de middleware en la pila.

‘Express’ también define diferentes tipos de middleware que son útiles:

  • Middleware a nivel de aplicación
  • Middleware a nivel de enrutador
  • Middleware de manejo de errores
  • Middleware incorporado Middleware de terceros

Aquí hay otro buen vistazo desde el punto de vista de Mozilla que menciona algunos controlador/devolución de llamada ejemplos

Más allá de eso, puede definir qué es un ‘controlador’ dentro de su equipo y la convención de nomenclatura sigue a partir de ahí. La clave es tu perfil SÓLIDO y cómo separas tus preocupaciones.

Te mostramos las reseñas y valoraciones de los usuarios

Si te sientes estimulado, puedes dejar una crónica acerca de qué le añadirías a esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *