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

586
Visualizações
res.redirect no es una función - express.js

Soy nuevo en Express.js y estoy tratando de crear un acortador de URL.

Cuando el usuario navega a domain.com/r/, consulto la base de datos para obtener el parámetro y obtengo la URL real.

Uso res.redirect para intentar redirigir a su URL almacenada, pero falla con 'res.redirect no es una función'.

Por favor, vea el fragmento a continuación:

 router.get('/r/:shortUrl', function(req, res) { connectDatabase.then( checkDatabase(req.params.shortUrl) .then( res => { console.log('checkdatdabase res => ' + res); //res = 'https://www.google.com' res.redirect(res); //TypeError: res.redirect is not a function }) .catch(e => { //executed due to above error console.error(e); res.redirect(307, '/home'); }) ) });

Cualquier consejo sería muy apreciado ya que este es un proyecto de aprendizaje para mí.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Tienes dos variables llamadas res .

Uno, pasado a la devolución de llamada que pasa a get() es un objeto de respuesta que tiene un método de redirect .

El otro es el valor resuelto de checkDatabase y no es un objeto de respuesta.

Este último ha ensombrecido al primero, por lo que ya no puede acceder a él.

Use nombres únicos para sus variables para evitar este problema.


Recomiendo usar un linter. ESLint puede detectar este tipo de problema con la regla de no sombra .

about 4 years ago · Juan Pablo Isaza Relatório

0

datdabaseRes y res deben tener un nombre de variable diferente. De lo contrario, res tiene el objeto de respuesta de la conexión de la base de datos en el ámbito en el que intenta usarlo.

 router.get('/r/:shortUrl', function(req, res) { connectDatabase.then( checkDatabase(req.params.shortUrl) .then( datdabaseRes => { console.log('checkdatdabase res => ' + datdabaseRes); //res = 'https://www.google.com' res.redirect(datdabaseRes); //TypeError: res.redirect is not a function }) .catch(e => { //executed due to above error console.error(e); res.redirect(307, '/home'); }) ) });

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