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

181
Vistas
Express JS: ¿Cómo administrar el enrutamiento por solicitud de encabezados?

He administrado una base de servicio de API en Express JS. Tengo 2 o 3 clientes que solicitan mi API. Todas las solicitudes del cliente son manejadas por aplicaciones monolíticas únicas . Actualmente, manejo esa solicitud con este código:

 const express = require('express'); const webRoute = require('./src/routes/web/index') const cmsRoute = require('./src/routes/cms/index'); app.use('/web', webRoute) app.use('/cms', cmsRoute) // This Code works just fine. The routes are defined by URL request

Pero quiero que la solicitud de ruta no sea de Url , sino solicitada por sus encabezados. Parece que esta appKey = 'for-key' appName='web'

curl -X OBTENER \
  http://localhost:3000/cms\
  -H 'Autorización: Portador asfsfafgdgfdgddafaggafafasgfghhjhkgflkjkxjvkjzvxzvz' \
  -H 'Cartero-Token: c36d6d5a-14b7-40bf-85e0-1bf255c815de' \
  -H 'appKey: registradores de teclas' \
  -H 'appName: web (quiero por este encabezado)' \
  -H 'control de caché: sin caché'

Gracias por todos.

editar notas:

En mi código actual, para llamar a una API estoy usando esto:

https://localhost:3000/cms/user/profile or https://localhost:3000/web/user/profile Quiero que todas las solicitudes usen solo https://localhost:3000/user/profile sin agregar un prefijo web o cms

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Según un comentario, parece que desea utilizar un solo formulario de URL como:

 https://localhost:3000/user/profile

Y enrutarlo al enrutador correcto según el encabezado personalizado appName .

Puede hacerlo simplemente verificando el valor del encabezado personalizado y enviando manualmente la solicitud al enrutador deseado.

 const webRoute = require('./src/routes/web/index') const cmsRoute = require('./src/routes/cms/index'); // custom middleware to select the desired router based on custom header app.use((req, res, next) => { const appName = req.get("appName"); if (appName === "web") { webRoute(req, res, next); } else if (appName === "cms") { cmsRoute(req, res, next); } else { next(); } });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar una ruta predeterminada, luego, según los encabezados de solicitud, puede redirigir a su ruta.

 //consider this a default route. You can arrange any in your program router.get('/', function (req, res) { // switch on request header variable value switch (req.get("appName")) { case "web": res.redirect('/web') break; case "cms": res.redirect('/cms') break; } })

about 4 years ago · Juan Pablo Isaza 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