Diferencia entre index.ejs e index.html

¿Qué es HTML ?

HTML (Hypertext Markup Language) se utiliza para diseñar la estructura de una página web y su contenido. HTML en realidad no es técnicamente lenguajes de programación como C++, JAVA o python. Es un lenguaje de marcado y, en última instancia, proporciona instrucciones declarativas al navegador. Cuando se carga una página web, el navegador primero lee el HTML y construye el árbol DOM (Document Object Model) a partir de él. HTML consta de una serie de elementos.

¿Qué es un motor de plantillas? 

Un motor de plantillas es una herramienta que permite a los desarrolladores escribir marcado HTML utilizando JavaScript simple. El motor de plantillas tiene su propia sintaxis definida o etiquetas que insertarán variables o ejecutarán alguna lógica de programación en tiempo de ejecución y generarán HTML final antes de enviarlo al navegador para su visualización. 

¿Qué es EJS?

EJS simplemente significa JavaScript incorporado. Es un lenguaje o motor de plantilla simple. EJS tiene su propia sintaxis y etiquetas definidas. Ofrece una manera más fácil de generar HTML dinámicamente.

Relación entre HTML y EJS:

De hecho, definimos HTML en la sintaxis de EJS y especificamos cómo y dónde irán varios datos en la página. Luego, el motor de plantillas combina estos datos y ejecuta la lógica de programación para generar la página HTML final. Entonces, la tarea de EJS es tomar sus datos e insertarlos en la página web de acuerdo con cómo ha definido la plantilla y generar el HTML final. 

Por ejemplo, podría tener una tabla de datos dinámicos de una base de datos y desea que EJS genere la tabla de datos de acuerdo con sus reglas de visualización.

¿Cuándo usar HTML/ EJS?

Varía según su aplicación. Si desea representar una página estática, busque un archivo HTML y si desea representar una página dinámica donde sus datos provienen de varias fuentes, debe elegir un archivo EJS.

Diferencia entre index.ejs e index.html:

archivo HTML archivo EJS
Bueno para la página web estática. Bueno para la página web dinámica.
El lenguaje de maquillaje HTML se utiliza para escribir archivos HTML. JavaScript se utiliza para escribir archivos EJS.
Escrito en lenguaje HTML. El marcado HTML se genera dinámicamente usando JavaScript.
No podía vincular datos dinámicos antes de enviarlos al navegador. Los datos dinámicos se vincularán con la plantilla y luego el resultado final se enviará al navegador.
La extensión del archivo HTML es .html La extensión del archivo EJS es .ejs

Ejemplo: suponga que tiene una página web para mostrar los salarios de los empleados. Si crea un archivo HTML estático, debe volver a escribirlo cada vez que se agregue un nuevo empleado o cambie el salario. Pero, con EJS se vuelve demasiado fácil insertar datos dinámicos en él. 

Código de versión HTML:

index.html

<!DOCTYPE html>
<html>
  
<head>
    <title>Employee Salary</title>
    <style>
        table {
            margin: 20% auto;
            border-collapse: collapse;
            border-spacing: 0;
            width: 20%;
            border: 1px solid #ddd;
        }
          
        th,
        td {
            text-align: left;
            padding: 16px;
        }
          
        tr:nth-child(even) {
            background-color: #d1d1d1;
        }
    </style>
</head>
  
<body>
    <table>
        <tr>
            <th> Employee </th>
            <th> Salary </th>
        </tr>
        <tr>
            <td> Sayan Ghosh </td>
            <td> 37000 </td>
        </tr>
        <tr>
            <td> Susmita Sahoo </td>
            <td> 365000 </td>
        </tr>
        <tr>
            <td> Nabonita Santra </td>
            <td> 36000 </td>
        </tr>
        <tr>
            <td> Anchit Ghosh </td>
            <td> 30000 </td>
        </tr>
    </table>
</body>
  
</html>

Producción:

Código de versión EJS:

Paso 1: primero, cree una aplicación NodeJS e instale los módulos necesarios, como los módulos express.js y ejs .

Nota: Consulte https://www.geeksforgeeks.org/how-to-use-ejs-in-javascript/ para comenzar con EJS.

Paso 2: Cree un archivo index.js que es nuestro servidor básico con el siguiente código.

index.js

var express = require('express');
var app = express();
  
// Set EJS as templating engine 
app.set('view engine', 'ejs');
  
// Employees data
const empSalary = [
    {
        name: "Sayan Ghosh",
        salary: 37000
    },
    {
        name: "Susmita Sahoo",
        salary: 365000
    },
    {
        name: "Nabonita Santra",
        salary: 36000
    },
    {
        name: "Anchit Ghosh",
        salary: 30000
    }
]
  
app.get('/employee/salary', (req, res) => {
  
    // Render method takes two parameter
    // first parameter is the ejs file to 
    // render second parameter is an 
    // object to send to the ejs file
    res.render('index.ejs', { empSalary: empSalary });
})
  
// Server setup
app.listen(3000, function (req, res) {
    console.log("Connected on port:3000");
});

Paso 3: cree un archivo index.ejs y colóquelo en la carpeta de vistas con el siguiente código.

index.ejs

<!DOCTYPE html>
<html>
<head>
  <title>Employee Salary</title>
  <style>
    table {
    margin: 20% auto;
    border-collapse: collapse;
    border-spacing: 0;
    width: 20%;
    border: 1px solid #ddd;
  }
  
  th, td {
    text-align: left;
    padding: 16px;
  }
    
  tr:nth-child(even) {
   background-color: #d1d1d1;
  }
  </style>
</head>
<body>
    <table>
      <tr>
           <th> Employee </th>
          <th> Salary </th>
      </tr>
  
      <% empSalary.forEach(emp => { %>
              <tr>
                  <td> <%= emp.name %>
                  <td> <%= emp.salary %>
              </tr>
      <% }); %> 
  
     </table>
</body>
</html>

Paso 4: Ejecute el servidor usando el siguiente comando:

node index.js

Salida: Ahora abra su navegador y vaya a http://localhost:3000/employee/salary , verá la siguiente salida:

Publicación traducida automáticamente

Artículo escrito por braktim99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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