buenas tardes, me llamo Federico Arias, en esta ocasion vamos a ver como crear nuestra propia tienda virtual de productos de limpieza.
Para ello necesitaremos tener un ambiente de desarrollo en NodeJs, usaremos el Vs Code como editor de codigo y el modulo Express de Node para crear el servidor y hacer las consultas.
Como primer medida:
const express = require("express"); //importamos el modulo expressconst app = express(); //inicializamos la instanciaconst port = 3040; //definimos el puerto del servidorconst productos =[ //creamos el arreglo con algunos items de limpieza
{id:1, name: 'Lavandina de 1 litro marca Sapolio', precio: 8, Stock: 150},
{id:2, name: 'Ambientador Spray de 330 ml marca Arom', precio: 10, Stock: 80},
{id:3, name: 'Lavavajillas de 1 litro Ozono',precio: 8.5,Stock: 25},
{id:4, name: 'Limpiador Sacasarro de 1 litro marca Ozono', precio: 9.5, Stock: 72}
];
app.get("/", (req, res) =>{ //callback para mandar una respuesta que enviaremo al cliente.
res.send("Hola mi server en Express");
});
// Obtenemos todos los productos
app.get("/productos", (req, res) =>{ //agregamos el nuevo endpoint productos y la respuesta en Json.
res.json([productos]);
});
//Obtenemos un solo producto segun su propio id
app.get('/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
const item = productos.find((item) => item.id === id);
if (item) {
res.json(item);
} else {
res.status(404).json({ error: 'producto no encontrado' });
}
});
// Create a new data item
app.post('/productos', (req, res) => {
const newItem = req.body;
productos.push(newItem);
res.status(201).json(newItem);
res.send('Item agregado correctamente!');
});
// Editar un producto
app.put('/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
const updatedItem = req.body;
const index = productos.findIndex((item) => item.id === id);
if (index !== -1) {
productos[index] = { ...productos[index], ...updatedItem };
res.json(productos[index]);
res.send('Prouducto editado correctamente!');
} else {
res.status(404).json({ error: 'Producto no encontrato!' });
}
});
// Delete a data item by ID
app.delete('/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
const index = productos.findIndex((item) => item.id === id);
if (index !== -1) {
const deletedItem = productos.splice(index, 1);
res.json(deletedItem[0]);
} else {
res.status(404).json({ error: 'Producto no encontrato!' });
}
});
app.listen(port, () =>{ //callback para imprimir en consola que el servidor esta funcionando.console.log("My port: " + port);
});
{
“id”: 4,
“name”: “Limpiador Sacasarro de 1 litro marca Ozono”,
“precio”: 9.5,
“Stock”: 72
}
5) Para crear un producto:
Here’s an example of how you can create a new data item by sending a POST request to http://localhost:3000/data:
Open your preferred API testing tool, such as Postman.
Set the HTTP method to POST.
Set the URL to http://localhost:3000/data.
Set the request body to JSON format. For example, you can use the following JSON payload:
json
Copy code
{
“id”: 3,
“name”: “Alice Johnson”,
“age”: 28
}
Send the POST request.
If the request is successful, you should receive a response with the newly created data item, including the assigned ID. The response will be in JSON format, and it should look like this:
json
Copy code
{
“id”: 3,
“name”: “Alice Johnson”,
“age”: 28
}
5.1) Algo no menos, estuve 1 hora intentando crear un item pero no pude porque falto una dependencia: npm install body-parser
ademas en el archivo .js debemos agregar la configuracion de como parsear el body al hacer el put:
const bodyParser = require(‘body-parser’);//para poder parsear el body al ingresar nuevos items
app.use(bodyParser.json()); //config para poder parsear el body del request
app.use(bodyParser.urlencoded({ extended: true }));
6) Ademas pasamos a insomnia el reques en el body as a json:
{
“id”: 30,
“name”: “Detergente Ace de 5 kilos”,
“precio”: 28,
“stock”: 2
}
Eso es todo, luego el Delete y update funcionan bien.
Espero aportar a la comunidad.
Saludos,