Bom dia.
Estou com um problema na execução do método query, conforme erro abaixo.
TypeError: Cannot read property 'query' of undefined
at PagamentoDao.salva (/Users/ycabral/Desktop/Alura/cursoRestAPI/payfast/persistencia/PagamentoDao.js:6:21)
at app.post (/Users/ycabral/Desktop/Alura/cursoRestAPI/payfast/controllers/pagamentos.js:32:22)
Quando eu entro com debug (uso vscode), a connection tem um atributo chamado "state" e aparece como "disconnected". Como posso solucionar?
Seguem os fontes:
PagamentoDao.js
function PagamentoDao( connection ) {
this._connection = connection;
};
PagamentoDao.prototype.salva = ( pagamento, callback ) => {
this._connection.query('INSERT into pagamentos set ?', pagamento, callback);
};
ConnectionFactory.js
var mysql = require('mysql');
function createDBConnection() {
return mysql.createConnection( {
host: 'localhost',
user: 'root',
password: 'duda@2015',
database: 'payfast'
});
};
module.exports = () => {
return createDBConnection;
};
Função post do pagamento.js:
app.post("/pagamentos/pagamento", ( req, res ) => {
var pagamento = req.body;
req.assert("forma_de_pagamento", "Forma de pagamento é obrigatória.").notEmpty();
req.assert("valor", "Valor é obrigatório e deve ser um decimal.").notEmpty().isFloat();
req.assert("moeda", "Moeda é obrigatória e deve ter 3 caracteres").notEmpty().len(3,3);
var errors = req.validationErrors();
if (errors){
console.log("Erros de validação encontrados");
res.status(400).send(errors);
return;
}
console.log('Processando pagamento...');
res.send('Processando pagamento...');
var connection = app.persistencia.ConnectionFactory();
var pagamentoDao = new app.persistencia.PagamentoDao( connection );
pagamento.status = "CRIADO";
pagamento.data = new Date;
pagamentoDao.salva( pagamento, (exception, result ) => {
console.log('Pagamento criado: ' + result);
res.location('/pagamentos/pagamento/' + result.insertId)
pagamento.id = result.insertId;
res.send('Pagamento criado: ' + result);
res.json( pagamento );
});
});
};
Segundo o erro, ele parece que não está instanciando a Connection... Pois ele dá como "undefined", mas não consegui achar o erro. Poderiam me ajudar, por favor?