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

415
Views
Express js, cómo hacer coincidir todas las rutas, incluso las subrutas

Estoy creando una aplicación de nodo js que necesita devolver una página 404 para todas las rutas excepto para la ruta /video .

 app.get('/video/*', Video.show) app.get('*', (req,res) => res.render('not_found'))

Esto funciona si la URL no tiene subdirectorios. El problema surge cuando alguien ingresa una URL con subdirectorios como /hello/subhello/ . Esto no es captado por mis rutas.

Ya probé estas opciones sin éxito:

 app.get('/*', (req,res) => res.render('not_found')) app.use((req,res) => res.render('not_found'))

Me estoy perdiendo de algo ?

Gracias

EDITAR

Cuando elimino el código para configurar los manillares, las rutas se siguen como se esperaba.

Este es el código de configuración del manillar:

 app.engine('.hbs', exphbs({ extname:'.hbs', defaultLayout:'layout.hbs', layoutsDir: __dirname+ '/views' })) app.set('view engine', '.hbs') app.set('views', __dirname + '/views')
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Aquí tienes una demostración de trabajo:

 var express = require('express'); var app = express(); var exphbs = require('express-handlebars'); app.engine('.hbs', exphbs({ extname:'.hbs', defaultLayout:'layout.hbs', layoutsDir: __dirname+ '/views' })) app.set('view engine', '.hbs') app.set('views', __dirname + '/views') app.get(['/videos', '/videos/*'], function (req, res) { res.send('Hello World!'); }); app.use(function(req, res) { res.status(404).send('Not found') }) app.listen(1233, function () { console.log('Example app listening on port 1233!'); });

Ya sea que acceda a localhost:1233/videos o localhost:1233/videos/* , obtendrá una respuesta Hello World. Si vas a otro lugar, obtienes el no encontrado.

EDITAR: Se agregó el código del manillar, igual que el tuyo. Todavía funciona como se esperaba.

over 4 years ago · Santiago Trujillo 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!