Node.js项目中调用JavaScript的EJS模板库的方法

yizhihongxing

下面是关于Node.js项目中调用JavaScript的EJS模板库的方法的完整攻略。

EJS模板库

在开始之前,首先需要了解一下EJS模板库,它是一个使用JavaScript模版引擎库,基于Node.js平台上的高效、灵活和易于使用的模板引擎。EJS允许动态生成HTML、XML、JSON等文件,以及将数据注入到模板中。这使得EJS成为Node.js中实现视图和模板功能时的常用工具。EJS的语法简单,易于学习和使用。关于EJS的更多信息可以参考官方文档:https://ejs.co/#docs

安装EJS

在使用EJS模板库前,需要先安装它。可以使用npm工具完成安装,运行以下命令:

npm install ejs

在Node.js项目中使用EJS模板

有了EJS模板库的基础知识和安装,就可以在Node.js项目中使用它了。

首先需要在Node.js应用中加载EJS模板库:

const ejs = require('ejs');

然后使用ejs.renderFile()函数来渲染EJS模板文件,如下示例:

const ejs = require('ejs');
const greeting = "Hello, world!";
ejs.renderFile('template.ejs', {greeting}, {}, (err, html) => {
    if (err) {
        console.error(err);
    } else {
        console.log(html);
    }
});

在上面的示例中,使用了ejs.renderFile()函数来渲染template.ejs模板文件。第一个参数是模板文件的路径。第二个参数是传递给模板的数据,这里使用了ES6的对象简写语法,变量名greeting的值就是"Hello, world!"。第三个参数是选项对象,这里没有用到。

渲染结果会在回调函数中返回。如果成功,回调函数的第二个参数html就是渲染后的HTML代码。

在模板中,使用<%= %>标签来插入JavaScript代码的值,如下面的示例所示:

<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <p><%= message %></p>
    <ul>
        <% for(let i=0; i<items.length; i++) { %>
            <li><%= items[i] %></li>
        <% } %>
    </ul>
</body>
</html>

在上面的代码中,<%= %>标签被用来插入titlemessage的值,<% %>标签被用来包含JavaScript代码,例如循环遍历items数组。

示例说明

接下来演示两个使用EJS模板的示例:

示例1:通过在Node.js中生成HTML片段,实现前后端分离的方案

首先是一个不使用传统Server-Side Rendering(SSR)方式,使用EJS模板库生成HTML片段,实现前后端分离库的方案。

在Node.js应用程序中执行以下步骤:

  1. 定义一个路由处理器,解析查询字符串参数并渲染模板。
const express = require('express');
const app = express();
const ejs = require('ejs');

app.get('/api/message', function(req, res) {
  const name = req.query.name;
  const message = `Hello, ${name}!`;
  const htmlString = ejs.render('<p><%= message %></p>', { message });
  res.send(htmlString);
});

app.listen(3000);
  1. 在前端浏览器中向URL/api/message发起GET请求,传递name参数。
<script>
  const name = prompt("Enter your name:");
  fetch(`/api/message?name=${name}`, {
    credentials: 'include'
  })
    .then(function(response) {
      return response.text();
    })
    .then(function(htmlString) {
      const messageDiv = document.getElementById('message');
      messageDiv.innerHTML = htmlString;
    });
</script>
<div id="message"></div>

在上面的代码中,用户输入自己的名称,JavaScript发送HTTP GET请求,查询参数以name的形式添加到URL中,然后使用fetch API(XMLHttpRequest也可以)发起请求。在响应返回时,额外的JavaScript代码解析并呈现模板,在页面DIV区域显示该HTML片段。

示例2:使用MVC架构模式,使用EJS模板库实现浏览器应用程序

现在我们来看另一个示例,它演示了如何使用EJS模板库实现MVC架构模式并在浏览器上运行应用程序。

在JavaScript中编写控制器和模型代码,使用Node.js Express框架:

  • 在模型中,使用JavaScript类表示数据模型。
  • 控制器接受用于查询模型的API调用并在模板中呈现数据。
const express = require('express');
const app = express();
const ejs = require('ejs');

class QuoteModel {
  getQuote() {
    return 'It is pitch dark. You are likely to be eaten by a grue.';
  }
}
const quoteModel = new QuoteModel();

app.get('/api/quote', function(req, res) {
  const quote = quoteModel.getQuote();
  res.json({quote});
});

app.get('/', function(req, res) {
  res.sendFile(__dirname + '/index.html');
});

app.listen(3000);

在模板中,使用EJS标记生成HTML,并使用JavaScript函数调用控制器中的API。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>JavaScript Quotes</title>
  </head>
  <body>
    <h1>JavaScript Quotes</h1>

    <p><%= quote %></p>

    <button id="refresh">Refresh</button>

    <script>
      const refreshButton = document.getElementById('refresh');
      const quoteP = document.querySelector('p');

      function refreshQuote() {
        fetch('/api/quote')
          .then(function(response) {
            return response.json();
          })
          .then(function(data) {
            quoteP.textContent = data.quote;
          });
      }

      refreshButton.addEventListener('click', refreshQuote);

      // Refresh on start.
      refreshQuote();
    </script>
  </body>
</html>

在上面的模板中,使用EJS功能插入控制器返回的值,并在JavaScript中创建一个与DOM事件相关的处理程序。当按钮单击时,控制器API会重新查询数据,并使用新数据刷新HTML。

好了,这就是关于如何在Node.js项目中调用JavaScript的EJS模板库的方法的完整攻略,两个示例希望可以帮助您更好地学习和使用EJS模板库。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js项目中调用JavaScript的EJS模板库的方法 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • NodeJS收发GET和POST请求的示例代码

    下面就是关于“NodeJS收发GET和POST请求的示例代码”的详细攻略: 1. NodeJS 监听 HTTP 请求 在 NodeJS 中,可以通过 http 模块来做 web 服务器,这样就可以监听 HTTP 请求并进行相应的处理,从而实现接收和发送请求的功能,代码如下所示: const http = require(‘http’); const serv…

    node js 2023年6月8日
    00
  • javascript 小数乘法结果错误的处理方法

    这里是详细讲解“JavaScript小数乘法结果错误的处理方法”的完整攻略。 问题描述 在JavaScript中,对于两个小数进行乘法运算时,有时会出现结果错误的问题,例如: 0.1 * 0.2 // 返回 0.020000000000000004 事实上,正确的结果应该是0.02,这种错误会给数值计算带来一定的困扰。那么为什么会出现这种问题呢? 问题原因 …

    node js 2023年6月8日
    00
  • django将数组传递给前台模板的方法

    将数组传递给Django前端模板有两种方法: 方法一:使用context传递数组 在views.py文件中定义数组,然后在render函数中使用context将数组传递给前端模板。示例如下: from django.shortcuts import render def my_view(request): my_array = [1, 2, 3, 4, 5]…

    node js 2023年6月8日
    00
  • node.js文件的复制、创建文件夹等相关操作

    下面是node.js文件的复制、创建文件夹等相关操作的完整攻略: 文件复制 在Node.js中,文件复制可以使用fs模块的copyFile()方法。其基本语法如下: fs.copyFile(srcPath, destPath, (err) => { if (err) throw err; console.log(‘File was copied’); …

    node js 2023年6月8日
    00
  • 深入理解JS异步编程-Promise

    深入理解JS异步编程-Promise 在JavaScript中,由于单线程的特点,异步编程是非常必要的。Promise是一种用于异步编程的解决方案,它可以让异步操作更加清晰、流畅,避免回调地狱的情况。本文将从Promise的基本用法、Promise链、Promise的一些方法等方面,对Promise进行深入讲解。 Promise的基本用法 Promise是一…

    node js 2023年6月8日
    00
  • TypeScript环境搭建的实现步骤

    下面我将详细讲解在Windows系统下搭建TypeScript开发环境的步骤。 第一步:安装Node.js Node.js是基于Chrome V8引擎的JavaScript运行环境,可以运行在服务器端和本地端,本次我们主要是运行在本地端。首先需要去Node.js官网下载对应版本的Node.js安装包,然后安装。 第二步:安装TypeScript编译器 在安装…

    node js 2023年6月9日
    00
  • node+express实现分页效果

    下面我来详细讲解一下“node+express实现分页效果”的完整攻略。 1. 安装与配置 首先,我们需要安装Node.js和Express框架,可以通过以下命令安装: npm install node express –save 安装完成后,我们需要创建一个新的Express项目,并安装一些必要的依赖: express my-project cd my-…

    node js 2023年6月8日
    00
  • javascript实现双端队列

    下面是详细讲解 JavaScript 实现双端队列的完整攻略,包含以下内容: 双端队列的介绍 实现双端队列的方法 示例说明 1. 双端队列的介绍 双端队列是一种特殊的队列,它允许从两端进行数据的插入和删除操作。与普通队列相比,双端队列拥有更加丰富的操作,可以满足更多的需求。 2. 实现双端队列的方法 实现双端队列的方法有多种,其中最常见的方法是使用数组来实现…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部