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

Porque o redirect redireciona para a rota "/livros" do método GET (ao invés de para a mesma rota do método POST)

Olá pessoal!

Porque o redirect redireciona para a rota "/livros" do método GET, e não para a rota de mesmo nome do método POST? Onde e/ou quando é feita esta "escolha"?

Módulo / arquivo rotas.js:

// código anterior

app.get('/livros', function(req, resp) { // rota /livros do método GET
    const livroDao = new LivroDao(db);
    livroDao.lista()
            .then(livros => resp.marko(
                require('../views/livros/lista/lista.marko'),
                {
                    livros: livros
                }

            ))
            .catch(erro => console.log(erro));

});

app.post('/livros', function(req, resp) { // rota /livros do método POST
    console.log(req.body);
    const livroDao = new LivroDao(db);
    livroDao.adiciona(req.body)
            .then(resp.redirect('/livros')) // redirecionamento
            .catch(erro => console.log(erro));
});

Desde já obrigado! Atenciosamente.

4 respostas

Pelo que eu vi do seu código, a idéia seria a seguinte, ao acessar a rota /livros (POST), você vai gravar os dados recebidos do formulário. Se houver a gravação, você é redirecionado para /livros (GET), desta forma, como você volta para a lista de livros, pode confirmar que houve a gravação correta dos dados

solução!

Boa tarde, Elías! Como vai?

O redirect() informa para o navegador que ele precisa fazer um redirecionamento para a rota /livros. Como o navegador por padrão faz requisições do tipo GET, é esse método que ele utiliza!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Olá pessoal!

Obrigado pelo retorno Daniel.

Grande instrutor Gabriel, peguei a ideia (das trevas à luz) sim! Era isso que eu estava matutando hehehe

Obrigado a todos pelo retorno! Atenciosamente.

Que bom, Elías! Sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço, meu aluno!

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