Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

418
Vistas
¿Cómo funcionan Express router.param y router.route en términos de definición de nombres de parámetros de URL?

Creé un archivo de enrutador usando Express. Las funciones de devolución de llamada residen en sus archivos "controladores" discretos. El siguiente es un extracto de las partes relevantes para mi pregunta, y se han omitido líneas como require of controller functions:

 const express = require('express'); const router = express.Router(); // This should run first router.param('coolParamName', validateParamBeforeHandlingReqs); // Param name is ↑↑↑↑↑ "consumed" here, although NOT defined yet // This should run after the above code router.route('/').get(getAllUserNames).post(createUser); router.route('/:coolParamName').get(getUserName).patch(updateUser).delete(deleteUser); // Param name is ↑↑↑↑↑ defined here, and was consumed earlier - how?

Como explican los comentarios, parece que el nombre del parámetro se ha definido como coolParamName en la parte inferior , pero "consumido" por el código escrito arriba . Esto me parece extraño, porque siento que es natural definir primero y luego usar después, ¿soy solo yo? ¿Escribí un código que va en contra del patrón de diseño previsto?

Me gustaría entender cómo Express define el nombre de param y cómo router.param y router.router .

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

router.param('coolParamName') esencialmente registra una devolución de llamada que será llamada para cualquier ruta (en ese enrutador) que use el parámetro :coolParamName y coincida con la solicitud actual. La devolución de llamada se llamará una vez por solicitud ANTES de la ruta que coincide con la solicitud que contiene el parámetro :coolParamName .

Es una especie de middleware para un parámetro coincidente. Le permite configurar automáticamente algún código de configuración cada vez que ese parámetro en particular coincida en una ruta.

Podría lograr lo mismo simplemente usando una pieza de middleware en esa ruta específica también o simplemente llamando a una función dentro del controlador de ruta. Por lo tanto, esta es solo una característica sutil si usa el mismo parámetro en varias rutas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda