Aquí está mi función de inicio de sesión
Una vez que se ingresan las credenciales incorrectas, envía una respuesta, pero luego la aplicación falla
Estoy usando las versiones Express ^ 4.17.2 y Nodejs v16.14.0
router.post( "/login", [ body("email", "Enter a valid email").isEmail(), body("password", "Password cannot be blank").exists(), ], async (req, res) => { try { let success = true; // if there are errors , return Bad requests and the errors const errors = validationResult(req); try { if (!errors.isEmpty()) { success = false; return res.status(400).json({ error: errors.array()[0].msg }); } const { email, password } = req.body; let user = await User.findOne({ email }); if (!user) { success = false; return res .status(400) .json({ success, error: "Please use correct credentials" }); } const passwordCompare = await bcrypt.compare(password, user.password); if (!passwordCompare) { success = false; return res .status(400) .json({ success, error: "Please use correct credentials" }); } const data = { user: { id: user.id, }, }; const authToken = jwt.sign(data, JWT_SECRET); res.json({ success, authToken }); } catch (error) { console.error(error.message); res.status(500).send("Internal Server Error"); // removing this also results in same error } } catch (error) { console.error(error); } } ); Estoy usando declaraciones de retorno, por lo que debería detener el programa una vez que haya un error, pero aún obtengo el error de Cannot set headers after they are sent to the client
¿Qué pasa con mi código?