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

Erro 'titulo' undefined

Pessoal, estou tomando esse erro no console quando tento salvar um novo livro... O que pode estar errado?

TypeError: Cannot read property 'titulo' of undefined
6 respostas

Orlando, boa tarde!

Qual é o valor que você tem no seu livro? Acredito que ele está vazio

Aguardo sua resposta e bons estudos!

Boa tarde, Orlando! Como vai?

Como o Felipe disse anteriormente o livro deve estar indefinido! Contudo, só saberemos a causa exata vendo o seu código! Vc poderia compartilhar o projeto completo com a gente colocando ele no github e mandando o link aqui? Assim poderemos tentar te ajudar de forma mais efetiva!

Outro detalhe importante! Em que momento esse erro ocorre? O que vc tentou fazer?

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Boa tarde, Felipe, tudo certo?

Segue minha classe DAO:

 adiciona(livro) {
    return new Promise((resolve, reject) => {
        this._db.run(`
            INSERT INTO livros (
                titulo, 
                preco,
                descricao
            ) values (?,?,?)
            `,
            [
                livro.titulo,
                livro.preco,
                livro.descricao
            ],
            function (err) {
                if (err) {
                    console.log(err);
                    return reject('Não foi possível adicionar o livro!');
                }

                resolve();
            }
        )
    });
}

e meu arquivo de rotas:

class LivroDao{

constructor(db) {
    this._db = db;
}

app.post('/livros',function(req,resp){

    const livroDao = new LivroDao(db)

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

@Gabriel, o erro acontece quando tento adicionar um novo livro no banco.

Segue o link para download do código: https://drive.google.com/file/d/18C1gThaAsxsw88dXVOuJT_E19LM5BMjN/view?usp=sharing

solução!

Pessoal, descobri o problema: No arquivo custom-express.js o método use() com a instância de bodyParser como parâmetro precisa ser declarado antes do objeto que recebe as rotas.