Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao conectar mysql

Olá,

Fazendo o exercício de conexão ao banco obtive o seguinte erro:

_http_outgoing.js:396
    throw new Error('Can\'t remove headers after they are sent.');
    ^
Error: Can't remove headers after they are sent.
    at ServerResponse.OutgoingMessage.removeHeader (_http_outgoing.js:396:11)
    at ServerResponse.send (/home/wt/Willian/projetos/alura/MEAN-alura/nodejs_inovando_com_javascript_no_backend/casadocodigo/node_modules/express/lib/response.js:200:10

produtos.js

module.exports = (app) => {
  app.get('/produtos',function(request,response){
    console.log('listando...');
    var mysql = require('mysql');
    var connection = mysql.createConnection({
      host: "localhost:3306",
      user: "root",
      password: "root",
      database: "casadocodigo_nodejs"
    });

    connection.query('select * from produtos', function(err, results){
        response.send(results);
    });

    connection.end();
    response.render('produtos/lista');
  });
}

Obrigado.

2 respostas
solução!

Cara, no callback da query, chama já o método render do response. Porque ai você ja informa duas coisas: página que será carregada, dados que irão ser enviados pra essa página.

connection.query('select * from produtos', function(err, results){
        response.render("produtos/lista",{lista:results});
    });

Não sei a teoria a fundo, porém creio que o "response.send" só recebe conteúdo que pode renderizado em uma página html, porém você esta passando um objeto pra ele

Olá Gustavo, obrigado por responder e desculpe a demora. Realmente o comando send e o render estavam mostrando o erro.

Obrigado