Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

179
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!