Sus siglas vienen de Embedded Javascript templates.
npm i express
npm i ejs
Sintaxis básica (etiquetas):
<%
etiqueta para el control de flujo, no produce salida de datos<%=
Envía el valor a la plantilla (HTML "escapado")<%-
Envía el valor a la plantilla (HTML "sin escapar")Ejemplo:
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
Estructura del proyecto:
directorio-proyecto
|--public
|--views
|--pages
|--home.ejs
|--template
|--head.ejs
|--footer.ejs
|--index.js
|--package.json
index.js
const express = require('express');
const path = require('path');
const app = express();
const port = 8000;
// configurando la vista para el motor
//1. Definiendo en donde se ubicará el directorio views
app.set('views', path.join(__dirname, 'views'));
//2. Definiendo el motor que usaremos
app.set('view engine', 'ejs');
//Configurando el directorio publico
app.use(express.static('./public'));
//Renderizando la página home cuando el cliente haga una petición a /
app.get('/',function (req, res) {
res.render('pages/home')
});
app.listen(port, () => console.log(`Servidor escuchando sobre el puerto ${port}`));