Node.js - Cannot set headers after they are sent to the client

 
Vista:
sin imagen de perfil
Val: 16
Ha mantenido su posición en Node.js (en relación al último mes)
Gráfica de Node.js

Cannot set headers after they are sent to the client

Publicado por Marcelo (11 intervenciones) el 11/05/2020 18:20:40
Gente:
Estoy haciendo una página que recoge el valor de un POST y en base a eso verifica si el usuario es correcto pero me da este error.
Les paso el código:

express()


.use(express.static(path.join(__dirname, 'public')),bodyParser
.urlencoded({extended:true}))
.set('views', path.join(__dirname, 'views'))
.set('view engine', 'ejs')
.get('/Prueba', (req,res) => {
con.query("select * from Circulares where Texto like '%" + req.query.Titulo +"%'",
function (err,Resultados,Fields) {
if (err) throw err;
Resultados=pruebaSql.MostrarTabla(Resultados);
res.render('/pages/default', {Base:Resultados});
})
})
//.use(bodyParser.urlencoded({extended:true}))

.post('/',(req,res) => {

let Validacion = false;
//console.log("Usuario:" + req.body.Usuario);
let Usuario=req.body.Usuario;
let Clave=req.body.Clave;
con.query("select * from Usuarios where Usuario='" + Usuario + "'" +
" and Clave='" + Clave + "'",
function (err,resultado,fields) {
if (err) throw err;
if (resultado.length>0) {
res.render('pages/Prueba');
}
})
res.end();

Desde ya muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Enrique
Val: 10
Ha disminuido su posición en 2 puestos en Node.js (en relación al último mes)
Gráfica de Node.js

Cannot set headers after they are sent to the client

Publicado por Enrique (4 intervenciones) el 05/07/2020 00:00:49
Esto pasa por que en tu post estas utilizando el metodo render y esta a route de inicio
Entonces cuando alguien intenta acceder a tu pagina se ejecuta tu codigo que colocas aca y a finalizar de hacer todo el proceso colocas res.end() que de hecho es lo que genera el error

Cuando se inicia el servidor de node ejecuta todo tu codigo, levanta los metodos y finaliza todo

Entonces cuando alguien entra a la pagina ya no puede hacer por que ya esta cerrado el servicio.
Te recomiendo quitar el res.end()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar