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

Erro 500 em /livros

Olá, após a aula 03 de Encapsular as rotas, está apresentando erro 500 em todo direcionamento para /livros. Tentei colocar manualmente novamente o /livros, porém o problema volta a ocorrer. revisei os encapsulamentos, e somente ocorre para a rota /livro. Segue o código utilizado:

rotas.js



const LivroControlador = require('../controladores/livro-controlador');
const livroControlador = new LivroControlador();

const BaseControlador = require('../controladores/base-controlador');
const baseControlador = new BaseControlador();

const rotasBase = BaseControlador.rotas();
    const rotasLivro = LivroControlador.rotas();

    app.get(rotasBase.home, baseControlador.home());

    app.get(rotasLivro.lista, livroControlador.lista());

    app.get(rotasLivro.cadastro, livroControlador.formularioCadastro());

    app.get(rotasLivro.edicao, livroControlador.formularioEdicao());

    app.post(rotasLivro.lista, [
        check('titulo').isLength({ min: 5 }).withMessage('O Titulo precisa ter no mínimo 5 caracteres!'),
        check('preco').isCurrency().withMessage('O preço precisa ter um valor monetário válido!')
    ], livroControlador.cadastra());

    app.put(rotasLivro.lista, livroControlador.edita());

    app.delete(rotasLivro.delecao, livroControlador.remove());

livro-controlador.js

class LivroControlador {

    static rotas() {
        return {
            lista: '/livros',
            cadastro: '/livros/form',
            edicao: '/livros/form/:id',
            delecao: '/livros/:id'
        };
    }

    lista(){

        return function(req, resp) {

            const livroDao = new LivroDao(db);
            livroDao.lista()
                .then(livros => resp.marko(
                    require('../views/livros/lista/lista.marko'),
                    {
                        livros: livros
                    }
                ))
                .catch(erro => console.log(erro));
        };
    }
1 resposta
solução!

Incrivelmente corrigi meu problema declarando as variáveis abaixo. Não sei pq, mas não estavam declaradas :facepalm:

const LivroDao = require('../infra/livro-dao');
const db = require('../../config/database');