Cómo usar EJS para crear plantillas para su aplicación Node

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Configuración del proyecto
  • Paso 1: Configuración conserver.js
  • Paso 2: creación de los parciales de EJS
  • Paso 3: agregar los parciales de EJS a las vistas
  • Paso 4: Pasar datos a vistas y parciales
    1. Representación de una única variable en EJS
    2. Recorrer datos en bucle en EJS
    3. Pasar datos a un parcial en EJS
  • Conclusión
  • Al crear rápidamente aplicaciones Node, a veces es necesario contar con una forma rápida de crear una plantilla para su aplicación.

    Jade viene como el motor de plantillas predeterminado para Express, pero la sintaxis de Jade puede ser demasiado compleja para muchos casos de uso.

    Las plantillas JavaScript integradas (EJS) se pueden utilizar como un motor de plantillas alternativo.

    En este artículo, aprenderá cómo aplicar EJS a una aplicación Express, incluir partes repetibles de su sitio y pasar datos a las vistas.

    Implemente sus aplicaciones frontend desde GitHub con la plataforma de aplicaciones DigitalOcean . Deje que DigitalOcean se concentre en escalar su aplicación.

    Prerrequisitos

    Si deseas seguir este artículo, necesitarás:

    • Un entorno de desarrollo local para Node.js. Sigue Cómo instalar Node.js y crear un entorno de desarrollo local .

    Nota: Puede encontrar un repositorio git del código de demostración completo en GitHub .

    Este tutorial se escribió originalmente para expresslas versiones v4.17.1 y ejsv3.1.5. Se verificó con Node v16.0.0, npmv7.11.1, expressv4.17.1 y ejsv3.1.6.

    Paso 1: Configuración del proyecto

    Primero, abra su ventana de terminal y cree un nuevo directorio de proyecto:

    1. mkdir ejs-demo

    Luego, navegue hasta el directorio recién creado:

    1. cd ejs-demo

    En este punto, puedes inicializar un nuevo proyecto npm:

    1. npm init -y

    A continuación, deberá instalar el expresspaquete:

    1. npm install express@4.17.1

    Luego instala el ejspaquete:

    1. npm install ejs@3.1.6

    En este punto, tienes un nuevo proyecto listo para usar Express y EJS.

    Paso 1: Configuración conserver.js

    Con todas las dependencias instaladas, configuremos la aplicación para usar EJS y configuremos las rutas para la página de índice y la página Acerca de.

    Crea un nuevo server.jsarchivo y ábrelo con tu editor de código y agrega las siguientes líneas de código:

    servidor.js

    var express = require('express');var app = express();// set the view engine to ejsapp.set('view engine', 'ejs');// use res.render to load up an ejs view file// index pageapp.get('/', function(req, res) {  res.render('pages/index');});// about pageapp.get('/about', function(req, res) {  res.render('pages/about');});app.listen(8080);console.log('Server is listening on port 8080');

    Este código define la aplicación y escucha en el puerto 8080.

    Este código también establece EJS como el motor de visualización para la aplicación Express usando:

    `app.set('view engine', 'ejs');`

    Observa cómo el código envía una vista al usuario mediante res.render(). Es importante tener en cuenta que res.render()buscará viewsla vista en una carpeta. Por lo tanto, solo tienes que definirla, pages/indexya que la ruta completa es views/pages/index.

    A continuación, creará las vistas utilizando EJS.

    Paso 2: creación de los parciales de EJS

    Al igual que muchas de las aplicaciones que creas, habrá una gran cantidad de código que se reutilizará. Estos se consideran archivos parciales . En este ejemplo, habrá tres archivos parciales que se reutilizarán en la página de índice y la página Acerca de: head.ejs, header.ejsy footer.ejs. Ahora, creemos esos archivos.

    Crear un nuevo viewsdirectorio:

    1. mkdir views

    Luego, crea un nuevo partialssubdirectorio:

    1. mkdir views/partials

    En este directorio, crea un nuevo head.ejsarchivo y ábrelo con tu editor de código. Agrega las siguientes líneas de código:

    vistas/parciales/head.ejs

    meta charset="UTF-8"titleEJS Is Fun/title!-- CSS (load bootstrap from a CDN) --link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.min.css"style  body { padding-top:50px; }/style

    Este código contiene metadatos para headun documento HTML. También incluye estilos Bootstrap .

    A continuación, crea un nuevo header.ejsarchivo y ábrelo con el editor de código. Agrega las siguientes líneas de código:

    vistas/parciales/encabezado.ejs

    nav  a href="/"EJS Is Fun/a  ul    li      a href="/"Home/a    /li    li      a href="/about"About/a    /li  /ul/nav

    Este código contiene la navegación para un documento HTML y utiliza varias clases de Bootstrap para el estilo.

    A continuación, crea un nuevo footer.ejsarchivo y ábrelo con el editor de código. Agrega las siguientes líneas de código:

    vistas/parciales/pie de página.ejs

    pcopy; Copyright 2020 The Awesome People/p

    Este código contiene información de derechos de autor y utiliza varias clases de Bootstrap para el estilo.

    A continuación, utilizarás estos parciales en index..ejsy about.ejs.

    Paso 3: agregar los parciales de EJS a las vistas

    Tienes tres parciales definidos. Ahora puedes includeincluirlos en tus vistas.

    Úselo para incrustar una parte de EJS en otro archivo.%- include('RELATIVE/PATH/TO/FILE') %

    • El guión %-en lugar de simplemente %indicarle a EJS que represente HTML sin formato.
    • La ruta al parcial es relativa al archivo actual.

    Luego, crea un nuevo pagessubdirectorio:

    1. mkdir views/pages

    En este directorio, crea un nuevo index.ejsarchivo y ábrelo con tu editor de código. Agrega las siguientes líneas de código:

    vistas/paginas/index.ejs

    !DOCTYPE htmlhtmlhead  %- include('../partials/head'); %/headbodyheader  %- include('../partials/header'); %/headermain  div    h1This is great/h1    pWelcome to templating using EJS/p  /div/mainfooter  %- include('../partials/footer'); %/footer/body/html

    Guarde los cambios en este archivo y luego ejecute la aplicación:

    1. node server.js

    Si visita http://localhost:8080/mediante un navegador web, podrá observar la página de índice:

    A continuación, crea un nuevo about.ejsarchivo y ábrelo con el editor de código. Agrega las siguientes líneas de código:

    vistas/paginas/acerca de.ejs

    !DOCTYPE htmlhtmlhead  %- include('../partials/head'); %/headbodyheader  %- include('../partials/header'); %/headermaindiv  div    div      h1This is great/h1      pWelcome to templating using EJS/p    /div  /div  div    div      h3Look I'm A Sidebar!/h3    /div  /div/div/mainfooter  %- include('../partials/footer'); %/footer/body/html

    Este código agrega una barra lateral de Bootstrap para demostrar cómo se pueden estructurar los parciales para reutilizarlos en diferentes plantillas y páginas.

    Guarde los cambios en este archivo y luego ejecute la aplicación:

    1. node server.js

    Si visita http://localhost:8080/aboutdesde un navegador web, podrá observar la página Acerca de con una barra lateral:

    Ahora puede comenzar a usar EJS para pasar datos desde la aplicación Node a las vistas.

    Paso 4: Pasar datos a vistas y parciales

    Definamos algunas variables básicas y una lista para pasar a la página de Índice.

    Vuelva server.jsa visitar su editor de código y agregue las siguientes líneas de código dentro de la app.get('/')ruta:

    servidor.js

    var express = require('express');var app = express();// set the view engine to ejsapp.set('view engine', 'ejs');// use res.render to load up an ejs view file// index pageapp.get('/', function(req, res) {  var mascots = [    { name: 'Sammy', organization: "DigitalOcean", birth_year: 2012},    { name: 'Tux', organization: "Linux", birth_year: 1996},    { name: 'Moby Dock', organization: "Docker", birth_year: 2013}  ];  var tagline = "No programming concept is complete without a cute animal mascot.";  res.render('pages/index', {    mascots: mascots,    tagline: tagline  });});// about pageapp.get('/about', function(req, res) {  res.render('pages/about');});app.listen(8080);console.log('Server is listening on port 8080');

    Este código define una matriz llamada mascotsy una cadena llamada tagline. A continuación, vamos a utilizarlas en index.ejs.

    Representación de una única variable en EJS

    Para hacer eco de una sola variable, puedes utilizar %= tagline %.

    Vuelva index.ejsa visitar su editor de código y agregue las siguientes líneas de código:

    vistas/paginas/index.ejs

    !DOCTYPE htmlhtmlhead  %- include('../partials/head'); %/headbodyheader  %- include('../partials/header'); %/headermain  div    h1This is great/h1    pWelcome to templating using EJS/p    h2Variable/h2    p%= tagline %/p  /div/mainfooter  %- include('../partials/footer'); %/footer/body/html

    Este código mostrará el taglinevalor en la página de índice.

    Recorrer datos en bucle en EJS

    Para recorrer los datos en bucle, puedes utilizar .forEach.

    Vuelva index.ejsa visitar su editor de código y agregue las siguientes líneas de código:

    vistas/paginas/index.ejs

    !DOCTYPE htmlhtmlhead  %- include('../partials/head'); %/headbodyheader  %- include('../partials/header'); %/headermain  div    h1This is great/h1    pWelcome to templating using EJS/p    h2Variable/h2    p%= tagline %/p    ul      % mascots.forEach(function(mascot) { %        li          strong%= mascot.name %/strong          representing %= mascot.organization %,          born %= mascot.birth_year %        /li      % }); %    /ul  /div/mainfooter  %- include('../partials/footer'); %/footer/body/html

    Guarde los cambios en este archivo y luego ejecute la aplicación:

    1. node server.js

    Si visita http://localhost:8080/desde un navegador web, podrá observar la página de índice con mascots:

    Pasar datos a un parcial en EJS

    El parcial de EJS tiene acceso a los mismos datos que la vista principal. Pero tenga cuidado. Si hace referencia a una variable en un parcial, debe definirse en cada vista que use el parcial o se generará un error.

    También puedes definir y pasar variables a un parcial EJS en la sintaxis de inclusión de esta manera:

    vistas/paginas/acerca de.ejs

    ...header  %- include('../partials/header', {variant: 'compact'}); %/header...

    Pero nuevamente hay que tener cuidado al asumir que se ha definido una variable.

    Si desea hacer referencia a una variable en un parcial que no siempre puede estar definido y darle un valor predeterminado, puede hacerlo de la siguiente manera:

    vistas/parciales/encabezado.ejs

    ...emVariant: %= typeof variant != 'undefined' ? variant : 'default' %/em...

    En la línea anterior, el código EJS representa el valor variantsi está definido y defaultsi no.

    Conclusión

    En este artículo, aprendió cómo aplicar EJS a una aplicación Express, incluir partes repetibles de su sitio y pasar datos a las vistas.

    EJS le permite crear aplicaciones cuando no necesita una complejidad adicional. Al usar elementos parciales y tener la capacidad de pasar variables fácilmente a sus vistas, puede crear rápidamente algunas aplicaciones excelentes.

    Consulta la documentación de EJS para obtener información adicional sobre las características y la sintaxis. Consulta Comparación de motores de plantillas de JavaScript: Jade, Mustache, Dust y más para comprender las ventajas y desventajas de los diferentes motores de visualización.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion