O que há de errado no que eu fiz?
rotas.js:
app.get('/livros/form/:id', function(req,resp){
const id = req.params.id;
const livroDao = new LivroDao(db);
livroDao.buscaPorId(id)
.then(livro =>
resp.marko(require('../view/livros/form/form.marko'),
{livro: livro}
)
)
.catch(err => console.log(err));
});
Lista.marko:
<body>
<h1>Listagem de Livros</h1>
<table id ="livros">
<tr>
<td>ID</td>
<td>Título</td>
<td>Preço</td>
<td>Editar</td>
<td>Remover</td>
</tr>
<tr id="livro_${livro.id}" for(livro in data.livros)>
<td>${livro.id}</td>
<td>${livro.titulo}</td>
<td>${livro.preco}</td>
<td><a href="/livros/form/${livro.id}">Editar</a></td>
<td><a href="#" data-ref="${livro.id}" data-type="remocao">Remover</a></td>
</tr>
</table>
<script src="/estatico/js/remove-livro.js"></script>
</body>
form.marko:
<form action="/livros" method="post">
<input type="hidden" id="id" name="id" value="${data.livro.id}"/>
<div>
<label for="titulo">Título:</label>
<input type="text" id="titulo" name="titulo" value="${data.livro.titulo}" placeholder="coloque algo"/>
</div>
<div>
<label for="preco">Preço:</label>
<input type="text" id="preco" name="preco" value="${data.livro.preco}" placeholder="coloque algo como preco"/>
</div>
<div>
<label for="descricao">Descrição:</label>
<textarea cols="20" rows="10" id="descricao" value="${data.livro.descricao}" name ="descricao" />
</div>
<input type="submit" value = "Salvar"/>
</form>
dao.js:
buscaPorId(id){
return new Promise((resolve, reject) => {
this._db.get(`SELECT * FROM livros where id = ${id}`,
[id],
(erro, livro) => {
if(erro)
return reject(`o livro com o id ${id} não foi encontrado`);
return resolve(livro);
});
});
}
O retorno ta sempre sendo o reject do dao