aparece este erro quando tento editar TypeError: livroDao.buscaPorId is not a function
mas nao sei como resolver isto :(
rotas.js
const LivroDao = require('../infra/livro-dao');
const db = require('../../config/database');
module.exports = (app) => { //exporta dos modulos uma função capaz de receber um parametro de app
app.get('/', function(req, resp) {
resp.send(
`
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1> Livros </h1>
</body>
</html>
`
);
});
app.get('/livros', function(req, resp) {
const livroDao = new LivroDao(db);
livroDao.lista()
.then(livros => resp.marko( //recebe a lista de livros e envia para a pagina de listagem com o metodo resp.marko
require('../views/livros/lista/lista.marko'), //importação do arquivo que vai exibir quando fizer a requisição
{ //contem informações pra tela que sera carregada
livros: livros //passa livros que é o parametro recebido pelo metodo then
}
))
.catch(erro => console.log(erro)); //é executado quando acontece algum erro no processamento de uma Promisse
});
app.get('/livros/form', function(req, resp) {
resp.marko(require('../views/livros/form/form.marko'), { livro: {} });
});
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('../views/livros/form/form.marko'),
{ livro: livro }
)
)
.catch(erro => console.log(erro));
});
app.post('/livros', function(req, resp) {
console.log(req.body);
const livroDao = new LivroDao(db);
livroDao.adiciona(req.body)
.then(resp.redirect('/livros')) //utiliza a resposta para invocar um metodo redirect() que identificar a rota que se quer acionar
.catch(erro => console.log(erro)); //é executado quando acontece algum erro no processamento de uma Promisse
});
app.delete('/livros/:id', function(req, resp) {
const id = req.params.id; //busca o id dentro dos parametros da requisição
const livroDao = new LivroDao(db); //responsavel por fazer o acesso ao banco de dados
livroDao.remove(id) //chama o metodo de remoção do livroDao recebendo o id
.then(() => resp.status(200).end()) //devolve o status do http de valor 200, significa que deu certo
.catch(erro => console.log(erro))
})
}
form.marko
<html>
<body>
<h1>Cadastro de livros</h1>
<form action="/livros" method="post">
<input type="hidden" id="id" name="id" value="${data.livro.id}" />
<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" value="${data.livro.descricao}" placeholder="fale sobre o livro"></textarea>
</div>
<input type="submit" value="Salvar" />
</form>
</body>
</html>