5
respostas

Problema de persistência de dados no alterar

Eai galerinha! fiz esse método para alterar um dado, e funciona normalmente.. o problema é a persistencia na hora de alterar o usuario n ter que digitar tudo novamente! eu ja coloquei um console.log(finded); no meu form.ejs, e apareceu os dados, prem quando coloco alguem dado, como console.log(finded.nome); aparece undefined, e por iso n ta aparecendo os dados la pro usuario! alguém pode me ajudar?

função get para editar

 app.get('/produtos/edit/:id', function (req, resp) {
        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        var id = req.params.id;
        produtosDAO.findById(id, function (err, results) {
            resp.render('produtos/form', {
                errs: {},
                finded: results
            });
        });
    });

form.ejs

<html>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href='https://fonts.googleapis.com/css?family=Raleway:800italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300|Chewy' rel='stylesheet' type='text/css'>
<body background="http://static.tumblr.com/ibcdiqw/Ie9lvg8i2/15_-_degrad___verde.png">
<div align="center">
    <div class="errors">
        <%if(errs) { %>
        <ul>
            <% for(var i=0; i<errs.length; i++) {%>
            <li><%=errs[i].param%> - <%=errs[i].msg%></li>
            <% } %>
        </ul>
        <%}%>
    </div>
    <div align="center">
        <h2 style="color: #3e8f3e; font-family: 'Chewy', cursive;">CADASTRAR LIVROS NO SISTEMA</h2>
    </div>
    <%console.log(finded.id)%>
<form action="/produtos" method="post" class="form-inline">
    <div class="form-group" align="center">
        <br><br>
        <label for="nome">Título</label>
        <br>
        <input type="text" class="form-control" id="nome" name="nome" value="<%= finded.nome%>" placeholder="Qual o título do livro?">
    </div>
    <br><br>
    <div class="form-group" align="center">

        <label for="preco">Preço</label>
        <br>
        <input type="text" class="form-control" id="preco" name="preco" value="<%=finded.preco%>" placeholder="Money, cash, facada">
    </div>
    <br><br>
    <div class="form-group" align="center">
        <label for="descricao">Descrição</label>
        <br>
        <textarea type="text" class="form-control" id="descricao" name="descricao"  placeholder="Como é o livro?"><%=finded.descricao%></textarea>
    </div>
    <br><br>
    <button type="submit" class="btn btn-lg btn-pill btn-success">Guardar na Estante :)</button>
</form>
</div>
</body>
</html>

qualquer ajuda vou agradecer de coração <3

5 respostas

Olá, Gustavo.

Você pode me mandar o código do seu ProdutoDao para eu dar uma olhada?

function ProdutosDAO(connection) {
    this._connection = connection;
}

ProdutosDAO.prototype

        .findAll = function (callback) {
    this._connection.query('SELECT * FROM produtos', callback);
};

ProdutosDAO.prototype

        .salva = function(produtos,callback) {
    this._connection.query('INSERT INTO produtos SET ?', produtos, callback);

};
ProdutosDAO.prototype

        .deletar = function(id,callback) {
    this._connection.query('DELETE FROM produtos WHERE id=?',[id] , callback);

};
ProdutosDAO.prototype

        .findById = function(id,callback) {
    this._connection.query('SELECT * FROM produtos WHERE id=?', [id], callback);

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

Gustavo, não consegui achar nenhum. No seu terminal está aparecendo alguma mensagem de erro?

pior que não... simplismente não aparece a persistencia :(

o interessante é que quando faço console.log(lista.nome); também aparece undefined, mas aparece na lista os dados kkk