9-Nuestra Primera Plantilla con EJS

 

Creando Nuestra Primera Plantilla con EJS y Express

  5-EXPRESS
           |
          V
           |
          V
7-express.static
           |
          V
           |
          V
     9-Plantilla
mi-app/
├── public/           # Archivos estáticos (opcional)
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   └── app.js
│   └── images/
│       └── logo.png
├── views/            # Carpeta para las plantillas EJS (obligatoria)
│   ├── index.ejs     # Vista principal
│   └── partials/     # Fragmentos reutilizables (opcional)
│       ├── header.ejs
│       └── footer.ejs
├── app.js            # Archivo principal de la aplicación
└── package.json      # Configuración del proyecto

En este post, aprenderemos a configurar EJS (Embedded JavaScript) como motor de plantillas en un proyecto de Express.js, permitiéndonos generar páginas dinámicas de manera sencilla.

📦 Instalación de EJS

Primero, instalamos EJS en nuestro proyecto:

bash
Copy
Download
npm i ejs

⚙ Configuración de Express para Usar EJS

En nuestro archivo principal (generalmente app.js o server.js), configuramos Express para usar EJS:

javascript
Copy
Download
const express = require('express');
const app = express();
const port = 3000;

// Configuración del motor de plantillas EJS
app.set("view engine", "ejs");
app.set("views", __dirname + "/views");

// Carpeta pública para archivos estáticos (CSS, JS, imágenes)
app.use(express.static(__dirname + "/public"));

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

📂 Estructura del Proyecto

Antes de trabajar con plantillas, teníamos una estructura básica en la carpeta public:

Copy
Download
mi-app/
├── public/          
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   └── app.js
│   └── 404.html

Ahora, agregaremos una carpeta views para nuestras plantillas dinámicas:

Copy
Download
mi-app/
├── public/          
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   └── app.js
├── views/
│   ├── index.ejs
│   └── template/
│       └── cabecera.ejs

🖥 Renderizando una Página con EJS

En lugar de usar res.send(), ahora usaremos res.render(), que toma el nombre del archivo EJS y un objeto con los datos a mostrar.

Ejemplo en app.js:

javascript
Copy
Download
app.get('/', (req, res) => {
    res.render("index", { titulo: "Mi Primer Sitio con EJS" });
});

Archivo views/index.ejs:

html
Copy
Download
Run
<%- include("template/cabecera") %>
<body>
    <h1><%= titulo %></h1>
</body>

🔹 Partials (Fragmentos Reutilizables)

Podemos dividir nuestro código en componentes reutilizables, como una cabecera (cabecera.ejs), y luego incluirlos con:

html
Copy
Download
Run
<%- include("template/cabecera") %>

🚀 ¿Por qué Usar EJS?

✅ Dinamismo: Permite inyectar datos directamente desde el servidor.
✅ Reutilización: Podemos crear componentes (partials) para evitar repetir código.
✅ Fácil Integración: Funciona perfectamente con Express.

Conclusión

Con EJS, nuestras páginas pasan de ser estáticas a dinámicas, facilitando el desarrollo y mantenimiento del frontend. ¡Ahora puedes seguir explorando y creando plantillas más complejas!

¿Ya has usado EJS en tus proyectos? ¡Cuéntanos tu experiencia en los comentarios! 👇




Comentarios

Entradas más populares de este blog

Lista de Tareas

6-Middleware?