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

384
Visualizações
¿Detener la ejecución del código después de devolver la respuesta en Node JS?

Soy nuevo en Node JS. Estoy practicando para construir una aplicación MERN. Tengo dos funciones getUserById e isSignedIn . Estas dos funciones son middlewares.

 router.param("userId",getUserById) const getUserById = (req,res,next,id)=>{ User.findById(id).exec((err,user)=>{ if(err){ return res.json({ error:"Unable to process request", status: false, }) } console.log(1234); if(!user){ return res.json({ error:"User doesn't exist", status: false }) } req.user=user; next() }) } const isSignedIn = (req,res,next)=>{ const token = req.headers.authorization.split(" ")[1] jwt.verify(token, process.env.SECRET_KEY, (err, decoded)=>{ if(err){ return res.json({ status: false, error: "Invalid Token" }) } console.log(123); req.auth=decoded next() }) }; router.post("/api/create/:userId",isSignedIn,(req,res)=>{ res.send("Success")})

Este es mi entendimiento. Si en la URL se encuentra el userId de usuario, se ejecutará getUserById y luego se iniciará sesión. En getUserById , si hubo un error o si el usuario no existe, se enviará una respuesta y la ejecución del código se detendrá allí. Pero en isSignedin si el token no es válido, envío una respuesta como Invalid Token y la ejecución del código debería detenerse allí. Pero el código después de if también se ejecuta, ¿por qué es así?

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

0

Intenta seguir el código

 router.param("userId",getUserById) const getUserById = async (req,res,next,id)=>{ try { const user = await User.findById(id) if(!user){ return res.json({ error:"User doesn't exist", status: false }) } else { req.user=user; next() } } catch (err) { return res.json({ error:"Unable to process request", status: false, error: JSON.stringify(err), }) } } const isSignedIn = async (req,res,next)=>{ const token = req.headers.authorization.split(" ")[1] try { const decoded = await jwt.verify(token, process.env.SECRET_KEY) if (decoded) { req.auth=decoded next() } } catch (err) { if(err){ return res.json({ status: false, error: "Invalid Token" }) } } }; router.post("/api/create/:userId",isSignedIn,(req,res)=>{ res.send("Success")})
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