Eu acabei o curso e até agora não consegui fazer a função editar.. bom na verdade consegui, o problema é deixar os dados persistidos no form! veja como eu fiz.
DAO
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
.save_update = function(id, produtos, callback) {
this._connection.query('UPDATE FROM produtos SET ? WHERE id=?',[id, produtos] , callback);
};
ProdutosDAO.prototype
.findById = function(id,callback) {
this._connection.query('SELECT * FROM produtos WHERE id=?', [id], callback);
};
module.exports = function () {
return ProdutosDAO;
};
FORM
<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 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>
<div align="center">
<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" value="<%=produtos.nome%>" name="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="<%=produtos.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?"><%=produtos.descricao%></textarea>
</div>
<br><br>
<div align="center">
<input type="submit" class="btn btn-success" value="Guardar na Estante :)">
</div>
</form>
</div>
</body>
</html>
ROTA GET
app.get('/produtos/:id', function (req, resp, next) {
var connection = app.infra.connectionFactory();
var produtosDAO = new app.infra.ProdutosDAO(connection);
var produtos = req.body
var id = req.params.id
produtosDAO.findById(id, function (err, results) {
if(err){
return next(err);
}
resp.render('produtos/form', {
errs: {},
produtos: results
});
});
});
LISTA
<html>
<head>
<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'>
<script>function confirmValidation() {
return window.confirm('Tem certeza que deseja excluir esse produto?');
}</script>
</head>
<body background="http://static.tumblr.com/ibcdiqw/Ie9lvg8i2/15_-_degrad___verde.png">
<div align="center">
<h2 style=" font-family: 'Chewy', cursive; color: #3e8f3e">LISTA DE LIVROS CADASTRADOS</h2>
</div>
<div align="center">
<tbody>
<div>
<table border="black" class="table table-bordered"
style=" margin:auto; width: 800px; font-family: 'Chewy', cursive;color: #0f0f0f">
<tr bgcolor="black" style="font-family: 'Chewy', cursive;color: white">
<td align="center">ID</td>
<td align="center">NOME</td>
<td align="center">DESCRIÇÃO</td>
<td align="center">PREÇO</td>
<td align="center">ACÃO</td>
</tr>
<% for(var i = 0; i < lista.length; i++) { %>
<tr>
<td><%= lista[i].id %></td>
<td><%= lista[i].nome %></td>
<td><%= lista[i].descricao %></td>
<td><%= lista[i].preco %></td>
<td>
<a class="btn btn-danger" onclick="return confirmValidation()" role="button"
href="/produtos/delete/<%= lista[i].id %>"/>DELETAR<br></a>
<a class="btn btn-warning" role="button" href="/produtos/<%= lista[i].id %>"/>EDITAR</a>
</td>
</tr>
<% } %>
</table>
<a style="font-family:'Chewy'" class="btn btn-success" role="button" href="/produtos/form"/>ADICIONAR <br></a>
</div>
</tbody>
</div>
</body>
</html>
quando clico em editar aparece o form vazio... pode me ajudar nisso? aliás parabéns pelas aulas vc explica mt bem!