Crear un sistema CRUD (Crear, Leer, Actualizar, Eliminar) en Node.js y Express para un eCommerce mediante una API RESTful es un proyecto valioso que te permitirá gestionar productos, pedidos y más. Acontinuación haremos una mini guía paso a paso sobre cómo hacerlo:
Paso 1: Configuración Inicial
mkdir my-store
cd my-store
.node -v
npm init -y
, este lo realiza por defecto y sigue las instrucciones para configurar el package.json. Acontinuación, creamos lo siguentes:
# Editor configuration, see https://editorconfig.orgroot = true
[*]charset = utf-8indent_style = space
indent_size = 2insert_final_newline = truetrim_trailing_whitespace = true
[*.js]quote_type = single
[*.md]max_line_length = offtrim_trailing_whitespace = false
Esto se realiza parque las personas que van a trabajar en este proyecto sea igual.
* .eslentrc.json
(reglas para la buenas practicas). Para el .eslintrc realizamos los mismos para anteriores pero con la siguiente configuración:
{
"parserOptions": {
"ecmaVersion": 2018
},
"extends": [
"eslint:recommended",
"prettier"
],
"env": {
"es6": true,
"node": true,
"jest": true
},
"rules": {
"no-console": "warn"
}
}
* index.js
Instala Express y otras dependencias necesarias:npm i express
Para el Package.json vamos a crear algunas tareas, por ejemplo:
Para que este entorno funciones debemos tener instaladas lo siguientes:
npm i eslint
npm i eslint-config-prettier
npm install --save-dev eslint-plugin-prettier
npm i prettier
npm install -g nodemon
o simplemente este comando
npm i nodemon eslint eslint-config-prettier eslint-plugin-prettier prettier -D
(Desarrollo).Paso 2: Configura Express y MongoDB
Crea un archivo index.js y configura Express:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
const port = process.env.PORT || 3000;
// Conecta a tu base de datos MongoDB
mongoose.connect('mongodb://localhost/tu-base-de-datos', { useNewUrlParser: true, useUnifiedTopology: true });
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
Paso 3: Define tus Modelos de Datos
Define los modelos de datos que necesitas para tu eCommerce. Por ejemplo, un modelo de producto:
const mongoose = require('mongoose');
const productSchema = new mongoose.Schema({
name: String,
description: String,
price: Number,
});
const Product = mongoose.model('Product', productSchema);
module.exports = Product;
Paso 4: Configura las Rutas para el CRUD
Crea rutas para las operaciones CRUD. Por ejemplo, para productos:
const express = require('express');
const router = express.Router();
const Product = require('./models/product'); // Asegúrate de tener la ruta correcta// Ruta para crear un nuevo producto
router.post('/productos', (req, res) => {
const newProduct = new Product(req.body);
newProduct.save((err, product) => {
if (err) {
res.status(500).send('Error al crear el producto');
} else {
res.status(201).json(product);
}
});
});// Ruta para obtener todos los productos
router.get('/productos', (req, res) => {
Product.find({}, (err, products) => {
if (err) {
res.status(500).send('Error al buscar productos');
} else {
res.json(products);
}
});
});// Implementa rutas para actualizar y eliminar productos aquí
module.exports = router;
Paso 5: Agrega las Rutas a tu Aplicación Principal
En tu archivo principal, agrega las rutas que definiste:
const productRoutes = require('./routes/productRoutes'); // Asegúrate de tener la ruta correcta// Configura las rutas
app.use('/api', productRoutes); // Puedes ajustar la ruta base según tu preferencia// Inicia el servidor
app.listen(port, () => {
console.log(`Servidor escuchando en http://localhost:${port}`);
});
Paso 6: Ejecuta y Prueba
Ejecuta tu aplicación Node.js:
node app.js
Utiliza herramientas como Postman o curl para probar tus rutas CRUD. Por ejemplo:
Crea un producto: Envía una solicitud POST a
http://localhost:3000/api/productos
con los datos del producto en el cuerpo de la solicitud.
Lee todos los productos: Realiza una solicitud GET a
http://localhost:3000/api/productos.
*. Actualiza un producto: Envía una solicitud PUT a
http://localhost:3000/api/productos/{id} con los datos actualizados del producto.