Seguramente te ha pasado: llevas el inventario de tu negocio en un Excel que se rompe cada dos por tres, o anotas las ventas en un cuaderno que termina perdido. Si tienes una tiendita de barrio, una panadería en Envigado o una startup tecnológica en Bogotá, la gestión de tu inventario es el corazón de tu operación. Hoy en día, no necesitas gastar una fortuna para tener un software a medida que solucione tus problemas.
En este tutorial práctico vamos a construir juntos una API REST básica utilizando Node.js y Express. Esta API te servirá como columna vertebral para una página web o una app móvil que te permita registrar, consultar, actualizar y borrar tus productos. ¡Agarrá tu tinto, abrí tu editor de código y pongámonos manos a la obra!
¿Por qué Node.js y Express para tu pyme?
Node.js es un entorno de ejecución que nos permite programar el backend (la lógica del servidor) usando JavaScript. Express, por su parte, es un framework minimalista que nos facilita la vida creando rutas y manejando peticiones HTTP.
Para los emprendedores en Colombia, esto es clave por tres razones:
- Es económico y rápido: Puedes desplegar aplicaciones de Node.js en servicios gratuitos o de muy bajo costo.
- Una sola lenguaje: Si ya sabes algo de JavaScript para el frontend, puedes usarlo también para el backend.
- Comunidad gigante: Hay miles de librerías (paquetes) listas para usar, lo que reduce drásticamente los tiempos de desarrollo de software a medida.
Paso 1: Preparar el entorno de desarrollo
Antes de tirar código, necesitas tener las herramientas básicas instaladas en tu computador:
- Node.js: Descárgalo desde la página oficial (nodejs.org) e instálalo. Te recomiendo la versión LTS (Long Term Support).
- Un editor de código: Visual Studio Code es gratuito, ligero y excelente.
- Postman: Una herramienta visual para probar que tu API funcione correctamente sin necesidad de tener una interfaz gráfica lista.
Abre tu terminal (o la terminal integrada de VS Code) y crea una nueva carpeta para tu proyecto:
mkdir inventario-pyme
cd inventario-pyme
Paso 2: Inicializar el proyecto e instalar dependencias
Una vez dentro de la carpeta, vamos a inicializar el proyecto de Node.js. Esto creará un archivo llamado package.json que guardará la información de tu proyecto y las librerías que uses.
npm init -y
El parámetro -y le dice a Node que acepte las configuraciones por defecto. Ahora, instalemos Express y otra librería llamada cors (que nos permite conectar nuestro frontend con el backend sin problemas de seguridad en el navegador):
npm install express cors
Paso 3: Crear el servidor y definir los datos
Crea un archivo en la raíz de tu carpeta llamado index.js. Este será el punto de entrada de nuestra aplicación. Vamos a configurar el servidor y a crear un arreglo (array) temporal en memoria para guardar nuestros productos.
const express = require('express');
const cors = require('cors');
const app = express();
const port = 3000;
// Middleware para entender JSON y permitir conexiones externas
app.use(cors());
app.use(express.json());
// Nuestra base de datos temporal en memoria
let productos = [
{ id: 1, nombre: 'Camiseta básica', precio: 25000, stock: 50 },
{ id: 2, nombre: 'Pantalón jeans', precio: 60000, stock: 20 }
];
// Iniciar el servidor
app.listen(port, () => {
console.log(`Servidor corriendo en http://localhost:${port}`);
});
Si ahora corres en tu terminal node index.js, verás el mensaje de que el servidor está activo. Sin embargo, aún no hace nada visible. Vamos a crear las rutas.
Paso 4: Implementar el CRUD (Crear, Leer, Actualizar, Borrar)
El CRUD es el alma de cualquier software de gestión. Vamos a añadir las rutas justo antes de la línea app.listen.
1. Leer todos los productos (GET):
app.get('/api/productos', (req, res) => {
res.status(200).json(productos);
});
2. Crear un nuevo producto (POST):
app.post('/api/productos', (req, res) => {
const { nombre, precio, stock } = req.body;
if (!nombre || !precio || stock === undefined) {
return res.status(400).json({ error: 'Faltan datos del producto' });
}
const nuevoProducto = {
id: productos.length + 1,
nombre,
precio,
stock
};
productos.push(nuevoProducto);
res.status(201).json(nuevoProducto);
});
3. Actualizar un producto (PUT):
app.put('/api/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
const { nombre, precio, stock } = req.body;
const productoIndex = productos.findIndex(p => p.id === id);
if (productoIndex === -1) {
return res.status(404).json({ error: 'Producto no encontrado' });
}
productos[productoIndex] = { id, nombre, precio, stock };
res.status(200).json(productos[productoIndex]);
});
4. Borrar un producto (DELETE):
app.delete('/api/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
productos = productos.filter(p => p.id !== id);
res.status(200).json({ mensaje: 'Producto eliminado correctamente' });
});
Paso 5: Probar que todo funcione
Con tu servidor corriendo (node index.js), abre Postman y prueba estas rutas:
- Para ver los productos: Haz una petición GET a
http://localhost:3000/api/productos. - Para crear uno: Haz una petición POST a la misma URL, ve a la pestaña "Body", selecciona "raw" y "JSON", y envía esto:
{ "nombre": "Gorra", "precio": 30000, "stock": 15 } - Para actualizar: Haz un PUT a
http://localhost:3000/api/productos/1enviando los nuevos datos. - Para borrar: Haz un DELETE a
http://localhost:3000/api/productos/2.
Si todo sale bien, tu API ya está respondiendo. ¡Felicidades, ya tienes el backend de tu sistema de inventario!
Consejos prácticos para emprendedores colombianos
- No des papaya con la seguridad: Este ejemplo guarda los datos en la memoria RAM. Si el servidor se apaga, se borra todo. Para un entorno real, debes conectar esto a una base de datos como MongoDB o PostgreSQL.
- Usa variables de entorno: Nunca dejes contraseñas o puertos escritos directamente en el código. Usa la librería
dotenvpara manejar configuraciones sensibles. - Piensa en escalar: Si tu negocio crece, esta misma estructura te servirá para manejar clientes, facturación electrónica (muy importante en Colombia) y envíos.
Conclusión
Desarrollar una herramienta para tu negocio no tiene que ser un dolor de cabeza ni un gasto exagerado. Con un poco de conocimiento y las herramientas correctas, puedes empezar a digitalizar tus procesos hoy mismo. Esta API REST es apenas el primer paso; a partir de aquí puedes construir una app móvil en React Native o una página web en React que consuma estos datos y le permita a tus clientes o empleados interactuar con tu inventario.
Sin embargo, sabemos que como emprendedor tu tiempo es oro y tu prioridad debe ser hacer crecer tu negocio, no preocuparte por bugs, servidores o por qué la app se cayó. Si quieres dar el salto a un software profesional, escalable y seguro, pero prefieres dejar el código en manos de expertos, en Camilincanins Company estamos listos para ayudarte. Desde páginas web y apps móviles hasta software a medida y consultoría, nosotros nos encargamos de la tecnología para que tú te enfoques en vender. ¡Contáctanos y conversemos sobre tu próximo gran proyecto!