Una Plataforma con Node.js, Express y EJS

Ajgutierrez
4 min readFeb 10, 2025

--

Photo by Florian Olivo on Unsplash

El Desafío

Innovatech, empresa líder en soluciones tecnológicas para el sector financiero, enfrentaba un problema crítico: su plataforma de gestión de clientes estaba obsoleta.

Construida hace más de una década, la plataforma era lenta, difícil de mantener y no escalaba con el crecimiento de la empresa. El equipo de TI, liderado por Ana López, sabía que necesitaban una solución moderna y ágil. Después de evaluar varias opciones, decidieron adoptar Node.js, junto con los frameworks Express y EJS, para reconstruir la plataforma desde cero.

El Framework

Ana y su equipo comenzaron investigando los frameworks disponibles para desarrollo web en Node.js. Consideraron opciones como Sails.js, Koa y Nest.js, pero finalmente eligieron Express por su simplicidad, flexibilidad y amplia comunidad de soporte. Además, seleccionaron EJS como motor de plantillas por su facilidad de uso y capacidad para integrarse con Express.

Reflexión de Ana:
“Express nos permitió empezar rápido, sin sacrificar la capacidad de escalar en el futuro. Y EJS era perfecto para generar vistas dinámicas sin complicaciones.”

La Instalación y Configuración Inicial

El primer paso fue instalar y configurar los frameworks. Ana asignó a Carlos, un desarrollador senior, para liderar esta tarea. Carlos siguió estos pasos:

  • Instalación de Node.js y npm:
    Carlos verificó que Node.js y npm estuvieran instalados en los equipos de desarrollo. Luego, inicializó un nuevo proyecto con el comando:
npm init -y
  • Instalación de Express y EJS:
    Carlos instaló Express y EJS usando npm:
npm install express ejs
  • Configuración básica de Express:
    Carlos creó un archivo app.js para configurar Express y EJS:
const express = require('express');
const app = express();
const port = 3000;

// Configurar EJS como motor de plantillas
app.set('view engine', 'ejs');
app.set('views', './views');

// Ruta principal
app.get('/', (req, res) => {
res.render('index', { title: 'Innovatech - Plataforma de Gestión' });
});

// Iniciar el servidor
app.listen(port, () => {
console.log(`Servidor corriendo en http://localhost:${port}`);
});
  • Estructura del proyecto:
    Carlos organizó el proyecto de la siguiente manera:
innovatech/
├── views/
│ └── index.ejs
├── public/
│ ├── css/
│ └── js/
├── app.js
└── package.json

Desarrollo de la Plataforma

Con la configuración inicial lista, el equipo comenzó a desarrollar la plataforma. Utilizaron EJS para crear vistas dinámicas, como la página de inicio y el panel de control. También integraron Bootstrap para el diseño responsive y jQuery para interactividad en el frontend.

Ejemplo de vista index.ejs:

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= title %></title>
<link rel="stylesheet" href="/css/styles.css">
</head>
<body>
<h1>Bienvenido a <%= title %></h1>
<p>Gestiona tus clientes de manera eficiente.</p>
</body>
</html>

El Despliegue y Resultados

Después de cuatro meses de desarrollo, Innovatech lanzó la nueva plataforma. Los resultados fueron impresionantes:

  • Rendimiento: Los tiempos de carga se redujeron en un 60%.
  • Escalabilidad: La plataforma podía manejar 5 veces más usuarios simultáneos.
  • Mantenibilidad: El código estaba bien organizado y documentado, lo que facilitó las actualizaciones.

Ana declaró: “Esta migración no solo mejoró nuestra plataforma, sino que también nos permitió ofrecer una mejor experiencia a nuestros clientes.”

Preguntas de Reflexión

  • Reflexión conceptual: ¿Por qué es importante elegir un framework adecuado para el desarrollo de aplicaciones empresariales? ¿Qué ventajas ofrece Express en comparación con otros frameworks de Node.js?
  • Ejercicio práctico: Dado el siguiente código de configuración de Express, identifica y corrige el error:
const express = require('express');
const app = express();
const port = 3000;

app.set('view engine', 'ejs');
app.set('views', './views');

app.get('/', (req, res) => {
res.render('index', { title: 'Innovatech' });
});

app.listen(port, () => {
console.log(`Servidor corriendo en http://localhost:${port}`);
});

Error: Falta servir archivos estáticos desde la carpeta public.
Solución: Agrega la siguiente línea antes de las rutas:

app.use(express.static('public'));
  • Reflexión crítica: ¿Por qué Innovatech eligió EJS como motor de plantillas? ¿Qué otros motores de plantillas podrían haber sido adecuados y por qué?
  • Ejercicio de análisis: Innovatech decidió usar Bootstrap y jQuery en el frontend. ¿Qué otras tecnologías o frameworks frontend podrían haber sido útiles y por qué?
  • Reflexión sobre configuración: ¿Cuál es la importancia de organizar adecuadamente la estructura de un proyecto (por ejemplo, separar vistas, archivos estáticos y lógica del servidor)? ¿Cómo impacta esto en la mantenibilidad del código?
  • Reflexión final: Innovatech logró mejorar su plataforma gracias a la combinación de Node.js, Express y EJS. ¿Cómo podrías aplicar estos conceptos en un proyecto personal o profesional en el que estés involucrado?

Conclusión

Se demuestra cómo la elección de frameworks adecuados, una instalación y configuración correctas, y un desarrollo organizado pueden transformar una plataforma obsoleta en una solución empresarial moderna y eficiente. Como dijo Ana López: “La tecnología es solo una herramienta; lo que importa es cómo la usas para resolver problemas reales.”

Se invita a reflexionar sobre cómo las decisiones técnicas pueden marcar la diferencia entre el fracaso y el éxito. ¿Estás listo para aplicar estas lecciones en tu próximo proyecto?

--

--

Ajgutierrez
Ajgutierrez

Written by Ajgutierrez

Dr. Alfredo de Jesús Gutiérrez Gómez has experience in the implementation of technologies across various fields and a professor and researcher.

No responses yet