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

TypeError: Cannot read property 'dbConnection' of undefined

No vídeo 2.7 do capítulo 2 tem uma mudança pra chamar a conexão, eu fiz tudo igual, mas tah dando esse erro aí.

app/routes/produtos.js

module.exports = function(app) {
  app.get('/produtos', function(req, res) {
    var connection = app.intra.dbConnection();
    connection.query('select * from produtos', function(erros,resultados) {
      res.render('produtos/lista',{lista:resultados});
    });
    connection.end();
  });
}

app/infra/dbConnection.js

var mysql = require('mysql');

var createDbConnection = function() {
  return mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'root',
    database:'casadocodigo',
    port:'8889'
  });
};

module.exports = function() {
  return createDbConnection;
};

config/express.js

var express = require('express');
var load = require('express-load');
module.exports = function() {
  var app = express();
  app.set('view engine','ejs');
  app.set('views', './app/views');
  load('routes',{cwd:'app'})
    .then('infra')
    .into(app);
  return app;
}
2 respostas

Não sei se pode ser esse o problema, mas o mysql por default se conectar a porta 3306. Caso vc não tenha modificado a porta default propositalmente nas suas configurações internas ao instalar o mysql, o problema provavelmente é esse. Simplesmente retire o atributo port, ou coloque o valor correto ( por padrão, a porta 3306). Com isso o objeto dbConnection deverá ser criado corretamente e o erro será sanado.

solução!

A porta está correta Vandeir, acabei de enxergar o erro, mas obrigada! Na verdade e produtos.js:

var connection = app.intra.dbConnection();

deveria ser:

var connection = app.infra.dbConnection();

Digitei INTRA ao invés de INFRA.. Aff.. rs

Obrigada.