4
respostas

Problemas com a conexão do NODEJS com o MYSQL.

Olá, minha dúvida é a seguinte. Estou tentando fazer a conexão do noje com o MYSQL e é retornado o erro abaixo:

ReferenceError: connnection is not defined
   at C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\app\routes\produtos.js:17:6
   at Layer.handle [as handle_request] (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\layer.js:95:5)
   at next (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\route.js:131:13)
   at Route.dispatch (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\route.js:112:3)
   at Layer.handle [as handle_request] (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\layer.js:95:5)
   at C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\index.js:277:22
   at Function.process_params (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\index.js:330:12)
   at next (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\index.js:271:10)
   at expressInit (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\middleware\init.js:33:5)
   at Layer.handle [as handle_request] (C:\Users\Daniel\Documents\ALURA TREINAMENTOS\NODE_JS\casadocodigo\node_modules\express\lib\router\layer.js:95:5)

O código que estou utilizando é este abaixo:

module.exports = function(app){
    app.get('/produtos',function(req,res){

        console.log("listando...");
        var mysql = require('mysql');
        var connection = mysql.createConnection({
            host : 'localhost',
            user : 'root',
            password : '2222',
            database : 'nodejs'
        });

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

        connnection.end();

    })
}

O que estou fazendo de errado ????

4 respostas

Você criou uma variável connection desta forma:

var connection = mysql.createConnection({
            host : 'localhost',
            user : 'root',
            password : '2222',
            database : 'nodejs'
        });

Porem, no final, você fechou desta forma:

connnection.end();

Tem um "n" a mais no nome da variável.

Pessoal preciso de ajuda, estou com o mesmo erro, já revisei o código, não ache ainda o erro:

marcos@marcos-Z450UAK:~/Documentos/nodejs/casadocodigo$ node app.js servidor rodando ReferenceError: connection is not defined at /home/marcos/Documentos/nodejs/casadocodigo/app/routes/produtos.js:10:9 at Layer.handle [as handle_request] (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/layer.js:95:5) at next (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/layer.js:95:5) at /home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/index.js:281:22 at Function.process_params (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/index.js:335:12) at next (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/index.js:275:10) at expressInit (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/middleware/init.js:40:5) at Layer.handle [as handle_request] (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/layer.js:95:5)


produto.js

var mysql = require('mysql');

module.exports = (app) => { app.get('/produtos', function (request, response) {

var conectar = mysql.createConnection({

host: "localhost", user: "root", password: "1234", database: "casadocodigo_nodejs" });

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

conectar.end(); }); }


No banco de dados a tabela criada é livros, entendo que a consulta deve ser feita assim: 'select * from livros'

Sou usuário linux, instalei o mysql-client e mysql-server, criei o banco casadocodigo_nodejs

O erro que está dando é "connection is not defined"

Tente inserir o seguinte código para facilitar a identificação do problema:

var conectar = mysql.createConnection({    host: "localhost", user: "root", password: "1234", database: "casadocodigo_nodejs" });

conectar.connect(function(err) {
  if (err) {
    console.error('erro ao conectar: ' + err.stack);
    return;
  }

  console.log('conectado com o id ' + conectar.threadId);
});  

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

Daneiel obrigado, pela resposta, mas ainda estou com o erro

``` insira seu código aqui

marcos@marcos-Z450UAK:~/Documentos/nodejs/casadocodigo$ node app.js servidor rodando ReferenceError: connection is not defined at /home/marcos/Documentos/nodejs/casadocodigo/app/routes/produtos.js:10:9 at Layer.handle [as handle_request] (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/layer.js:95:5) at next (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/layer.js:95:5) at /home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/index.js:281:22 at Function.process_params (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/index.js:335:12) at next (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/index.js:275:10) at expressInit (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/middleware/init.js:40:5) at Layer.handle [as handle_request] (/home/marcos/Documentos/nodejs/casadocodigo/node_modules/express/lib/router/layer.js:95:5)