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

285
Vistas
express.js - controlador de enrutamiento único para múltiples rutas

Actualmente estoy creando una aplicación y tengo un archivo de rutas que se ve así.

 const router = require('express').Router(); router.get('/', (req, res) => res.render('statics/home')); router.get('/jobs', (req, res) => res.render('statics/jobs')); router.get('/about-page', (req, res) => res.render('statics/about-page')); router.get('/valves', (req, res) => res.render('statics/valves')); router.all('*', (req, res) => res.notFound()); module.exports = router;

Estoy tratando de encontrar una manera de refactorizar mis rutas y tener una sola ruta que acepte cualquier cadena y luego verifique si existe un archivo que coincida.

¡Cualquier ayuda apreciada!

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Para manejar fácilmente el archivo estático, puede usar express static, express enrutará automáticamente todos los archivos dentro de la carpeta estática

 app = require('express')(); app.use('statics',express.static('statics'));
about 4 years ago · Santiago Trujillo Denunciar

0

Algo como esto podría funcionar:

 const router = require('express').Router(); const fs = require('fs'); router.get(':template', (req, res) => { const tpl = req.param('template'); if (tpl) { if (fs.existsSync('/path/to/templates/' + tpl + '.ext')) { // adjust the path and template extension res.render('statics/' + tpl); } else { res.notFound(); } } else { res.render('statics/home'); } }); router.all('*', (req, res) => res.notFound()); module.exports = router;

O probablemente un mejor enfoque sería leer el directorio de plantillas una vez y crear rutas basadas en su contenido:

 const router = require('express').Router(); const fs = require('fs'); const templates = fs.readdirSync('/path/to/templates'); templates.forEach(tpl => { tpl = tpl.substring(tpl.lastIndexOf('/') + 1); if (tpl === 'home') { router.get('/', (req, res) => res.render('statics/home')) } else { router.get('/' + tpl, (req, res) => res.render('statics/' + tpl)) } }); router.all('*', (req, res) => res.notFound()); module.exports = router;
about 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