En este artículo, vamos a aprender cómo reiniciar una aplicación Node.js cuando ocurre una excepción no detectada. Para ello, vamos a utilizar el módulo pm2.
Enfoque: Veamos el enfoque paso a paso:
- Paso 1: instale el módulo pm2 y utilícelo para iniciar el servidor.
- Paso 2: cuando ocurre una excepción no detectada, ejecute el comando process.exit() para detener el servidor.
- Paso 3: Luego, el módulo pm2 iniciará automáticamente el servidor nuevamente.
process.exit() detiene el servidor y pm2 fuerza su inicio. De esta forma, el servidor se reiniciará.
Implementación: A continuación se muestra la implementación paso a paso del enfoque anterior.
Paso 1: Inicializa NPM: crea y localiza la carpeta de tu proyecto en la terminal y escribe el comando
npm init -y
Inicializa nuestra aplicación de Node y crea un archivo package.json.
Paso 2: Instale las dependencias: ubique el directorio de su proyecto raíz en la terminal y escriba el comando
npm install express pm2
Para instalar express y pm2 como dependencias dentro de su proyecto
Paso 3: Creando una lista de productos: Vamos a crear una array de productos y establecerla en productos constantes.
const products = [];
Paso 4: Creación de rutas para la página de inicio y la página de productos: Vamos a crear dos rutas para que los usuarios puedan acceder a la página de inicio y la página de productos.
app.get('/', (req, res) => { res.send('Hello Geeks!'); }); app.get('/products', (req, res) => { if (products.length === 0) { res.send('No products found!'); process.exit(); } else { res.json(products); } });
Dentro de la ruta del producto, usamos el método process.exit() para detener el servidor.
Código completo:
Javascript
const express = require('express'); const app = express(); const products = []; app.get('/', (req, res) => { res.send('Hello Geeks!'); }); app.get('/products', (req, res) => { if (products.length === 0) { res.send('No products found!'); process.exit(); } else { res.json(products); } }); app.listen(3000, ()=>{ console.log('listening on port 3000'); });
Pasos para ejecutar la aplicación: Dentro de la terminal, escriba el comando para ejecutar su script ‘app.js’ con pm2.
pm2 start app.js
Producción: