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

Metodos put , delete , post , get nodejs

Galera estou criando uma api que realiza o CRUD até então consegui realizar o get e o post , estou realizando o carregamento em memoria sem utilizar banco , e estou adicionando os dados em uma tabela dinamica , mas estou com dificuldade em realizar o delete e o put. segue abaixo oq fo feito. obg <3

var express = require('express'); 
var app = express();
var bodyParse = require('body-parser');

app.use(bodyParse.urlencoded({extended: true})); 
app.use(bodyParse.json());

app.set('view engine','ejs') 
app.set('views','./app/views');    
app.use(express.static('app/views/vouchers'));

var recuperarHtml = [];


app.get('/vouchers',function(req,res){
    res.render('vouchers/index',{lista:recuperarHtml});
});

app.post('/vouchers' , function(req,res){
    var produto = req.body;
    //console.log(produto.codigo);
    // Adicionar um elemento no array
    recuperarHtml.push(produto);
    res.status(201).redirect('/vouchers');
});

app.delete('/vouchers/:id',function(req,res,err){

    // Recuperar meu id
    var idHttp = req.params.id;
    console.log(idHttp);
    // Recuperando meu body
    var produto = req.body;
    console.log(produto);
    // Recuperando meu produto
    recuperarHtml = [produto];
    console.log(recuperarHtml);

    // Listar
    for (var i in recuperarHtml) {
        if(recuperarHtml[i].codigo == idHttp){
            recuperarHtml.shift(codigo);
      }
    }

    res.redirect('/vouchers');
});

app.put('/vouchers/:id' , function(req,res){
    const id = req.params.id;
    res.status(200).send({
        id: id
    });
});

app.listen(3000, function(){
    console.log("servidor rodando");
});


Minha table no HTML 

Dentro do modal estou passando um <form> com o method="post" para post e um outro modal com method="delete" para delete não sei se estou fazendo certo , rs e passando no action="/vouchers"

  <%for(var i=0;i<lista.length;i++) {%>
      <thead>
            <tr>
              <td><%=lista[i].codigo%></td>
              <td><%=lista[i].campanha%></td>
              <td><%=lista[i].inicio%></td>
              <td><%=lista[i].fim%></td>
              <td><%=lista[i].max%></td>
              <td><%=lista[i].valor%></td>  
            </tr>
            <%}%>

~~~~~~~~~~~~~~~~~~~~~~~

Meu modal Deletar

   <form action="/vouchers" method="delete">

              <div class="container">

                <div class="form-group col-md-3">
                  <label id="move1" for="tCodigo"> CÓDIGO </label>
                  <input type="text" class="form-control" name="codigo" id="tCodigo"  placeholder="lari100">
                </div>

        </div>

        </form>
2 respostas
solução!

Olá, Cassio.

O form do HTML só tem suporte ao método GET e POST. Para usar os outros métodos HTTP você pode utilizar um JavaScript para fazer um AJAX ou utilizar um biblioteca chamanda Method Override que implementará o AJAX pra você :-)

Obrigado :)