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

Dados não sendo salvos

Os dados do vídeo não estão sendo salvos. Já coloquei a senha do meu msql no meu connectionFactory. Ele lista os dados, que foram inseridos manualmente via script, porém não salva. Alguma ideia?

5 respostas

Posta o código aqui do controller e da view

É o código que a própria Alura dá ao fim de cada capítulo...

Se alguém tiver alguma ideia do porque meu insert não insere...

Meu connectionFactory:

var mysql  = require('mysql');

function createDBConnection() {
    return mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '*****',
        database: 'casadocodigo_nodejs'
    });
}

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

meu DAO para insert :

ProdutosDAO.prototype.salva = function(produto, callback){
    this._connection.query('insert into produtos set ?', produto, callback);
}

Meu método POST:

app.post('/produtos', function(req, res) {
        var produto = req.body;

        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);

        produtosDAO.salva(produto, function(err, results) {
            res.redirect('/produtos');
        });

        connection.end();
    });
solução!

E ae Leonardo, tudo bem?

Você esta obtendo alguma exceção? Não aparece nada no console?

Notei que você esta ignorando o erro que pode estar sendo retornado do DAO no seu post. Nesse trecho:

produtosDAO.salva(produto, function(err, results) {
    res.redirect('/produtos');
});

Tente verificar o erro, desta forma:

produtosDAO.salva(produto, function(err, results) {
    if (err) console.log(err);
    res.redirect('/produtos');
});

Talvez assim o erro apareça no console.

Se você puder, coloque o seu ProdutoDAO inteiro aqui.

Abraço.

Valeu Daniel. Imaginei que uma tratativa deste erro não me mostraria na real o problema, mas foi de grande ajuda, obrigado