Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Editar não funciona

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

1 resposta
solução!

já resolvi