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

380
Vistas
¿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 Respuestas
Responde la pregunta

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 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