- 📦 Node.js (v16 o superior)
- 🗄️ MySQL (v8.0 o superior)
- 🔄 Git (opcional)
- 📁 El proyecto debe estar ubicado en
C:\mchicken_api_node - ⚙️ Ejecutar
npm installpara instalar dependencias - 🔧 Configurar la base de datos MySQL con los parámetros en
config/db.js
- 🔑 Editar el archivo
config/db.jscon tus credenciales de MySQL - 📊 Crear la base de datos
pv_mchickene importar el esquema SQL - ✅ Verificar que Node.js esté instalado y en el PATH del sistema
- 🚀 El archivo
startup_api_chicken_node.batdebe estar en la carpeta de inicio de Windows
-
📥 Asegúrate de tener PM2 instalado globalmente:
npm install -g pm2 -
🛠️ Comandos disponibles:
- 🟢
npm run start- Inicia la aplicación en modo producción con PM2 - 🟢
npm run start:dev- Inicia la aplicación en modo desarrollo con PM2 - 🔴
npm run stop- Detiene la aplicación - 🔄
npm run restart- Reinicia completamente la aplicación - 🔄
npm run reload- Recarga la aplicación sin tiempo de inactividad - 📋
npm run logs- Muestra los logs en tiempo real de la aplicación - 📊
npm run status- Muestra el estado actual de la aplicación - 📈
npm run monit- Abre el monitor de recursos de PM2 - 🗑️
npm run delete- Elimina la aplicación de PM2
- 🟢
-
🔍 Monitoreo y Diagnóstico:
- 📊 Ver el estado de la aplicación:
npm run status - 📈 Monitorear recursos en tiempo real:
npm run monit - 📋 Ver logs en tiempo real:
npm run logs - 🔄 Recargar sin downtime:
npm run reload
- 📊 Ver el estado de la aplicación:
-
📂 Estructura de Logs:
- 📝 Los logs generales se encuentran en:
logs/app-1.log ⚠️ Los errores se registran en:logs/error-1.log- 🔄 Los logs se rotan automáticamente para mantener el espacio en disco
- 📝 Los logs generales se encuentran en:
-
⚙️ Configuración:
- 📄 La configuración de PM2 se encuentra en
ecosystem.config.js - 👀 El modo watch está activado para detectar cambios automáticamente
- 🔄 El servidor se ejecuta en modo
fork - 🔒 La aplicación se reinicia automáticamente en caso de errores
- 💾 Límite de memoria configurado a 1GB
- 📄 La configuración de PM2 se encuentra en
-
🚀 Inicio Automático:
- Se debe incluir el archivo
startup_api_chicken_node.baten la carpeta de inicio de Windows - Ruta:
C:\Users\[Usuario]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup - El script verifica e inicia automáticamente:
- La instalación de Node.js
- La instalación de PM2
- La aplicación usando la configuración de PM2
- Se debe incluir el archivo
- 🌐 Acceder a la interfaz web en
http://localhost:3000 - 🔌 La API estará disponible en
http://localhost:3000/pedidos
- 🔍 Obtener la IP de la máquina servidor usando el comando
ipconfigen la terminal - 🖥️ Desde otras máquinas en la misma red, acceder usando:
- 🌐 Interfaz web:
http://<IP-DEL-SERVIDOR>:3000 - 🔌 API:
http://<IP-DEL-SERVIDOR>:3000/pedidos
- 🌐 Interfaz web:
- Asegurarse de que:
- Ambas máquinas estén en la misma red LAN
- El puerto 3000 no esté bloqueado por el firewall
- PM2 esté ejecutando el servidor (verificar con
pm2 status)
- Para verificar que el servicio está funcionando:
- Abrir el Administrador de Tareas
- Buscar procesos de Node.js y PM2
- Verificar que exista conexión a la base de datos en los logs
- 🔄 Endpoint GET
/pedidospara obtener todos los pedidos - ⚡ Actualización automática cada 30 segundos
- 📄 Paginación de resultados
- 🌐 Acceso desde múltiples dispositivos en la red local
- 🔍 Verificar que MySQL esté corriendo
- 📋 Revisar los logs del servidor en la carpeta
C:\mchicken_api_node\logs\ - 🔌 Asegurar que los puertos no estén en uso
🚫 Si la aplicación no inicia automáticamente:
- ✅ Verificar que
startup_api_chicken_node.batesté en la carpeta de inicio - 🔍 Ejecutar el archivo manualmente para ver posibles errores
- 📁 Comprobar que la ruta
C:\mchicken_api_nodeexiste y contiene todos los archivos
🔄 Si la aplicación se reinicia constantemente:
- ❌ Verificar los logs de error en
logs/error.log - 📊 Comprobar el uso de memoria con
npm run status - 🔌 Revisar la conexión a la base de datos
- Si no se puede acceder desde otra máquina:
- Verificar conexión con
ping <IP-DEL-SERVIDOR> - Comprobar que el firewall permita conexiones al puerto 3000
- Confirmar que ambos dispositivos estén en la misma red
- Verificar conexión con
- Para problemas con PM2:
- Usar
npm run statuspara ver el estado de la aplicación - Verificar los logs con
npm run logs - Intentar reiniciar con
npm run restart - En caso necesario, eliminar y volver a crear el proceso con
npm run deleteseguido denpm run start
- Usar
Si los cambios que funcionan con node server.js no se reflejan en producción con PM2, sigue estos pasos:
-
🛑 Detener completamente PM2:
pm2 delete all
-
🧹 Limpiar los logs:
pm2 flush
-
🗑️ Eliminar archivos de logs antiguos:
del logs\*.log -
🚀 Reiniciar la aplicación en modo producción:
npm run start
-
📋 Verificar el estado:
npm run status
-
👀 Monitorear logs en tiempo real:
npm run logs
Si los problemas persisten:
-
🔍 Revisar los logs de error:
type logs\error-1.log
-
📊 Monitorear el uso de recursos:
npm run monit
-
🔄 Intentar un reload en lugar de restart:
npm run reload
- Asegúrate de que PM2 esté usando la configuración correcta del
ecosystem.config.js - El modo watch debe estar activo para detectar cambios automáticamente
- Los archivos ignorados en
ignore_watchno triggearán reinicios - Los cambios en archivos estáticos pueden requerir un
reloadmanual - En caso de problemas de memoria, revisa
max_memory_restartenecosystem.config.js