Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
Publicado por Angel (1 intervención) el 11/04/2021 21:47:57
Buenas, estoy haciendo una web con Node y Mysql.
El problema está a la hora de verificar el login.
Quiero que una vez introducidos los datos se ejecute una funcion llamada login (que se encuentra en otro archivo y es solicitada por un require), la cual hace una consulta para obtener el email y contraseña (que ha sido cifrada con bcrypt). Una vez hecha la consulta, compara con el metodo bcrypt compare si la contraseña introducida en el login es igual a la hasheada.
Si la contraseña es igual, quiero que me rediriga al inicio de la página, si no lo es, que me vuelva a redirigir al login.
El problema es que recibo este error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client y no se como solucionarlo.
Este es el codigo que llama a la funcion
Y este es el codigo de la función
Gracias de antemano
El problema está a la hora de verificar el login.
Quiero que una vez introducidos los datos se ejecute una funcion llamada login (que se encuentra en otro archivo y es solicitada por un require), la cual hace una consulta para obtener el email y contraseña (que ha sido cifrada con bcrypt). Una vez hecha la consulta, compara con el metodo bcrypt compare si la contraseña introducida en el login es igual a la hasheada.
Si la contraseña es igual, quiero que me rediriga al inicio de la página, si no lo es, que me vuelva a redirigir al login.
El problema es que recibo este error: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client y no se como solucionarlo.
Este es el codigo que llama a la funcion
1
Users.login(data.email, data.password, res.redirect('/'), res.redirect('/sign-in'));
Y este es el codigo de la función
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const login = function (email, password, success, nonsuccess) {
if (email && password) {
conn.query('SELECT * FROM users WHERE email = ? LIMIT 1', [email], function (err, results, fields) {
if (results.length == 1) {
bcrypt.compare(password, results[0].password, function (err, correct) {
console.log(correct);
if (err) {
console.log(err);
} else if (correct == false){
nonsuccess;
}else if (correct == true) {
success;
}
})
Gracias de antemano
Valora esta pregunta


0