如何在 JavaScript 中使用 Ejs?


EJS 是一种模板语言,允许我们使用纯 JavaScript 生成 HTML 标记。它提供了一种简单直观的方式来在我们的 Web 应用程序中生成动态内容,从而更容易管理和组织我们的代码。EJS 易于使用,只需几个步骤即可集成到任何 JavaScript 项目中。

在本教程中,我们将学习如何在 JavaScript 中使用 EJS 的基础知识,包括如何设置我们的项目、创建 EJS 模板以及渲染模板以生成动态 HTML 输出。

在 JavaScript 应用程序中使用 EJS 的步骤

用户可以按照以下步骤在他们的 JavaScript 应用程序中使用 EJS。

步骤 1 − 首先,我们将使用 npm 安装 EJS。

npm install ejs

步骤 2 − 接下来,在我们的 JavaScript 文件中,我们需要使用 require('ejs') 引入 EJS。

const ejs = require('ejs'); 

步骤 3 − 之后,我们可以将 EJS 模板创建为字符串或在单独的 .ejs 文件中创建。

例如,我们可以创建一个简单的 EJS 模板,如下所示:

const template = '<h1>Hello <%= name %></h1>'; 

步骤 4 − 接下来,我们可以使用 ejs.render() 函数渲染 EJS 模板并生成动态 HTML 输出。我们必须传入一个包含我们想要在模板中使用的数据的对象。

例如,我们可以使用以下数据渲染上述模板:

const data = { name: 'World' };
const html = ejs.render(template, data); 

步骤 5 − 现在,我们可以使用 Node.js 等服务器端 JavaScript 平台来处理 EJS 代码并将渲染后的 HTML 发送到客户端的 Web 浏览器。

例如,我们可以创建一个简单的 Node.js 服务器文件,如下所示:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
   const data = { name: 'World' };
   const html = ejs.render(template, data);
   res.send(html);
});

app.listen(3000, () => {
   console.log(' Server listening on port 3000 ');
}); 

步骤 6 − 最后,我们可以将生成的 HTML 输出到浏览器、控制台或文件。

示例

在下面的示例中,我们使用 EJS 与 Express 渲染动态 HTML 内容。

在 index.js 文件中,我们首先导入所需的依赖项:express 和 ejs。然后,我们将 EJS 设置为应用程序的视图引擎。

接下来,我们定义一个路由来使用 res.render() 渲染 index.ejs 文件。我们传入一个名为 data 的对象,其中包含页面标题、标题和描述的属性。

在 index.ejs 文件中,我们使用 EJS 语法将从 data 对象传递的值插入到 HTML 模板中。

访问该路由时,index.ejs 文件将使用动态内容进行渲染并发送到客户端的 Web 浏览器。

Index.js

const express = require('express');
const app = express();
const ejs = require('ejs');

// Set EJS as the view engine
app.set('view engine' , 'ejs');

// Define a route to render the index page
app.get('/', (req , res) => {
   const data = {
      title: 'My Homepage',
      heading: 'Welcome to my homepage!',
      description: 'This is an example of using EJS with Express to render dynamic HTML content.'
   };
   res.render('index', data) ;
});

// Start the server
app.listen(3000, () => {
   console.log(' Server started on port 3000 ');
});

Views/index.ejs

<!DOCTYPE html>
<html>
<head>
   <title><%= title %></title>
</head>
<body>
   <h1> <%= heading %> </h1>
   <h3> <%= description %> </h3>
</body>
</html> 

输出

示例

在这个例子中,我们使用 EJS 模板引擎来渲染一个动态 HTML 页面,显示博客文章列表。

在这里,我们使用循环迭代一个帖子数组并在页面上显示它们。我们还使用 EJS 标签将数据对象中的值插入到 HTML 中。

当我们访问 https://127.0.0.1:3000 时,服务器会渲染 index.ejs 文件并将生成的 HTML 返回到浏览器,浏览器会显示博客文章列表。

Index.js

const express = require('express');
const app = express();
const ejs = require('ejs');

// Set EJS as the view engine
app.set('view engine' , 'ejs');

// Define a route to render the index page
app.get('/', (req, res) => {
   const data = {
      title: 'My Blog',
      posts: [
         {title: 'Post 1', body : 'This is the first post.' },
         {title: 'Post 2', body : 'This is the second post.' },
         {title: 'Post 3', body : 'This is the third post.' }
      ]
   };
   res.render('index', data);
});

// Start the server
app.listen(3000, () => {
   console.log(' Server started on port 3000 ');
}); 

Index.ejs

<!DOCTYPE html>
<html>
<head>
   <title> <%= title %> </title>
   <style>
      body{
         background-color: antiquewhite;
         text-align: center;
      }
      h1{
         color: red;
      }
      ul{
         list-style-type: none;
         display: flex;
         flex-direction: row;
         justify-content: space-around;
      } 
      li{
         border: 2px solid red;
         padding: 1rem 3rem;
      }
   </style>
</head>
<body>
   <h1> <%= title %> </h1>
   <ul>
      <% for (let i = 0; i < posts.length; i++) { %>
      <li>
         <h2> <%= posts[i].title %> </h2>
         <p> <%= posts[i].body %> </p>
      </li>
      <% } %>
   </ul>
</body>
</html> 

输出

在本教程中,用户学习了如何设置一个使用 EJS 作为模板引擎的 JavaScript 项目。他们学习了如何创建 EJS 模板,这是一种 HTML 文件,其中包含 EJS 标签,允许在运行时插入动态内容。

此外,用户学习了如何使用 Node.js 渲染 EJS 模板并生成动态 HTML 输出。这涉及设置一个 Express 服务器来处理 HTTP 请求,然后使用 render 方法来响应请求渲染 EJS 模板。

通过掌握这些概念,用户可以创建动态网页,显示来自各种来源(如数据库或 API)的数据。

更新于: 2023年3月7日

7K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告