Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

410
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda