How to get a POST PUT DELETE in express with postman

0

I leave the code in js that I use I would need POST PUT AND DELETE! Thanks in advance. My problem is that I do not know how to take the data and work with them. I need to make a get of only computers. Add products with post. To be able to update them with put and delete them with delete

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

var productes = [
    {categoria: 'Ordinador', nom:'ASUS', preu:1111},
	{categoria: 'Ordinador', nom:'MSI', preu:2222},
    {categoria: 'Ratoli', nom:'LOGITECH', preu:11},
	{categoria: 'Ratoli', nom:'MICROSOFT', preu:22},
    {categoria: 'Monitor', nom:'LG', preu:222},
	{categoria: 'Monitor', nom:'ASUSROGARMY', preu:222}
];
app.get('/', (req, res)=>res.send('La botiga virtual'));


app.get('/api/productes', (req, res)=>res.send(productes));
//Hasta la línea de arriba me muestra los productos en json en postman pero el post delete y put de un producto no me tira.
app.get('/api/productes/:cat', (req, res)=>{
var producte = {'categoria':req.body.categoria, 'nom': req.body.nom,'preu': parseInt(req.body.preu) };
    res.send(producte);
    if (!producte) res.status(404, 'error');
    //res.send(producte);
});	
app.post('/api/productes', (req, res)=>{
var producte = {'categoria':req.body.categoria, 'nom': req.body.nom,'preu': parseInt(req.body.preu) };
    producte.push(productes);
    res.send(productes);
});
app.delete('/api/productes/:categoria', (req, res)=>{
    var producte = productes.find(a =>a.categoria===parseInt(req.params.categoria));
    var index =productes.indexOf(producte);
    productes.splice(index, 1);
    res.send();
});
app.put('/api/productes/:categoria', (req, res)=>{
    var nouproducte={categoria: parseInt(req.body.categoria), 'nom': req.body.nom };
    var producte = productes.find(a =>a.categoria===parseInt(req.params.categoria));
    var index =productes.indexOf(producte);
    productes[index]=nouproducte;
});

app.listen(3000, ()=>console.log('inici servidor'));
    
asked by InfoTipsconJavitoBCN 24.10.2018 в 19:53
source

2 answers

1

I have found an answer to my own question I leave here below for whoever is interested.

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

var productes = [
    {cat:'ORD', nom:'ASUS', preu:1000},
    {cat:'ORD', nom:'MSI', preu:1200},
    {cat:'RAT', nom:'MS', preu:25},
    {cat:'RAT', nom:'LG', preu:45}
];

app.get('/api/productes', (req, res)=>res.send(productes));

app.get('/api/productes/:cat', (req, res)=>{
    var ps=[];
    var producte = productes.forEach(function(p){
        if (p.cat===req.params.cat) ps.push(p);
    });
    if (!producte) res.status(404, 'error');
    res.send(ps);
});

app.get('/api/productes/:cat/:nom', (req, res)=>{
    var producte = productes.find(a =>a.cat===req.params.cat && a.nom===req.params.nom);
    if (!producte) res.status(404, 'error');
    res.send(producte);
});

app.post('/api/productes', (req, res)=>{
    var producte={'cat': req.body.cat, 'nom': req.body.nom, 'preu':parseInt(req.body.preu)};
    productes.push(producte);
    res.send(producte);
});
app.delete('/api/productes/:cat', (req, res)=>{
    productes.forEach(function(p, index){
        if (p.cat===req.params.cat)   productes.splice(index, 1);
        index--;

    });   
    res.send(productes);
});
app.delete('/api/productes/:cat/:nom', (req, res)=>{
    var producte = productes.find(a =>a.cat===req.params.cat && a.nom===req.params.nom);
    var index =productes.indexOf(producte);
    productes.splice(index, 1);
    res.send(productes);
});
app.put('/api/productes/:cat/:nom', (req, res)=>{
    var nouProducte={cat: req.body.cat, 'nom': req.body.nom , 'preu': parseInt(req.body.preu)};
    var producte = productes.find(a =>a.cat===req.params.cat && a.nom===req.params.nom);
    var index =productes.indexOf(producte);
    productes[index]=nouProducte;
});

app.listen(3000, ()=>console.log('inici servidor'));
    
answered by 24.10.2018 / 23:22
source
0

so I can see you are receiving an arrangement so you should specify the position you want to catch, for example:

var variable = req.body[0].nom
// variable = 'ASUS'

and if you want to send the entire arrangement simply in your response append the whole body:

res.status(200).send(req.body)
    
answered by 24.10.2018 в 20:13