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

Dúvida em implementar método remove

Em java eu faria de forma simular, mas em javascript no node não deu certo. Como faço para pegar o parâmetro id?


    app.delete('/produtos/id', function(req, resp){
        var id = req.pegarOparametro;
        produtoDAO.remover(id, function(errors, resultados){
            resp.redirect('/produtos');
        })
    })
4 respostas

Fala ai Fabricio, de boa ?

Você precisa fazer duas coisinhas, no código para recuperar algum parametro da url basta usar o seguinte código :

req.params.NomeDoParamentro

Entretetanto o node precisa saber que você está esperando algum parametro, por isso precisa colocar : no atributo

app.delete('/produtos/:id', restante...)

Deu certo, está removendo.

    app.delete('/produtos/:id', function(req, resp){
        var id = req.params.id;
        console.log(id);
        var connection = app.infra.connectionFactory();
        var produtoDAO = new app.infra.ProdutosDAO(connection);

        produtoDAO.remover(id, function(errors, resultados){
            resp.redirect('/produtos');
        })
    })

Mas consegui efetuando a requisição pelo postman, mas mesmo excluindo ele retorna um erro:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Error</title>
    </head>
    <body>
        <pre>Cannot DELETE /produtos</pre>
    </body>
</html>
solução!

Oi Fabricio,

Cara precisa ver o que rolou nesse erro ai.

Descobri aqui, alterei o retorno para json e funcionou dentro do método:

app.delete('/produtos/:id', function(req, resp){
        var id = req.params.id;
        console.log(id);
        var connection = app.infra.connectionFactory();
        var produtoDAO = new app.infra.ProdutosDAO(connection);

        produtoDAO.remover(id, function(errors, resultados){
            resp.json(resultados);
        })
    })