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

Não conseguindo editar um livro, aparece no console a mensagem de erro que foi colocada no projeto. Eu realizei todas as configurações do professor e mesmo assim dá o erro

Arquivo livro-dao.js:

atualiza(livro) { return new Promise((resolve, reject) => { this._db.run( UPDATE livros SET titulo = ?, preco = ? descricao = ? where id = ?, [ livro.titulo, livro.preco, livro.descricao, livro.id ], erro => { if (erro) return reject('Não foi possível atualizar o livro')

      resolve()
    }
  )
})

}

rotas.js:

app.put('/livros', function(req, resp) { console.log(req.body); const livroDao = new LivroDao(db);

livroDao.atualiza(req.body)
        .then(resp.redirect('/livros'))
        .catch(erro => console.log(erro));

});

form.marko:

Cadastro de livros

    <form action="/livros" method="post">

        <div if(data.livro.id)>
            <input type="hidden" name="_method" value="PUT">
            <input type="hidden" id="id" name="id" value="${data.livro.id}" />
        </div>

        <div>
            <label for="titulo">Titulo:</label>
            <input type="text" id="titulo" name="titulo" value="${data.livro.titulo}" placeholder="coloque o titulo" />
        </div>
        <div>
            <label for="preco">Preço:</label>
            <input type="text" id="preco" name="preco" value="${data.livro.preco}" placeholder="150.25" />
        </div>
        <div>
            <label for="descricao">Descrição:</label>
            <textarea cols="20" rows="10"  id="descricao" name="descricao"  placeholder="fale sobre o livro">${data.livro.descricao}</textarea>
        </div>

        <input type="submit" value="Salvar" />
    </form>
</body>
2 respostas
solução!

Olá Alexandre, tudo bem? Peço desculpas pela demora em ti responder! O problema no seu código é que está dando erro no comando SQL, isso pela falta de uma virgula depois da interrogação ( ? ) de preço:

UPDATE livros SET 
        titulo = ?,
        preco = ?        <- o erro está aqui
        descricao = ?
        where id = ?

O seu comando deve ser da seguinte forma:

UPDATE livros SET
          titulo = ?,
          preco = ?,
          descricao = ?
        WHERE id = ?

Tenta e fala pra gente se funcionou!

Deu certo, obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software