Node.js的Web模板引擎ejs的入门使用教程

yizhihongxing

什么是模板引擎?

在 Node.js 开发中,我们通常需要把数据渲染到一个 HTML 页面中展示给用户,这就需要一个模板引擎。模板引擎是将数据和模板进行组合,生成的最终的 HTML 页面。ejs 是 Node.js 中最流行的一种模板引擎。

安装 ejs

在 Node.js 中安装 ejs 最简单的方法是使用 npm 包管理器,在命令行中输入以下命令安装 ejs:

npm install ejs

使用 ejs

1. 编写模板文件

ejs 的模板文件后缀名为 .ejs,它本质上是一个普通的 HTML 文件,只不过在其中使用 ejs 提供的语法。

示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ejs 渲染示例</title>
</head>
<body>
    <h1> <%= title %> </h1>
    <p>文章内容:</p>
    <% for(var i=0; i < articles.length; i++) { %>
        <div>
            <h2><%= articles[i].title %></h2>
            <p><%= articles[i].content %></p>
        </div>
    <% } %>
</body>
</html>

2. 使用 ejs 渲染数据

在 Node.js 中使用 ejs 渲染数据非常简单,通过 ejs.render() 函数即可实现。

示例:

const ejs = require('ejs');
const fs = require('fs');

// 读取模板文件
const template = fs.readFileSync(__dirname + '/views/index.ejs', 'utf8');

// 渲染数据
const data = {
    title: '使用 ejs 渲染数据',
    articles: [
        {
            title: '大数据时代的 Node.js',
            content: 'Node.js 的强大性能,在大数据处理方面发挥了更加重要的作用。'
        },
        {
            title: 'Node.js 开发微服务',
            content: '微服务架构是 Node.js 重要的应用场景之一。'
        },
        {
            title: '异步编程思维',
            content: 'Node.js 异步编程思维的重要性与基本原理。'
        }
    ]
};
const html = ejs.render(template, data);

console.log(html);

第一步是通过 Node.js 内置的 fs 模块读取 views/index.ejs 文件内容,第二步是定义要渲染的数据 data,第三步是通过 ejs.render() 函数渲染数据。最后输出渲染后的 HTML 内容。

ejs 的语法

ejs 这种模板引擎的语法有很多,这里只介绍最常用的几个语法。

输出数据

在 ejs 中,要输出数据使用 <%= %> 语法,如:

<h1> <%= title %> </h1>

执行语句

在 ejs 中,执行语句使用 <% %> 语法,如:

<% if (articles.length > 0) { %>
    <ul>
        <% for (var i = 0; i < articles.length; i++) { %>
            <li><%= articles[i] %></li>
        <% } %>
    </ul>
<% } else { %>
    <p>暂无文章</p>
<% } %>

注释语句

在 ejs 中,注释语句使用 <%# %> 语法,如:

<%# 代码注释 %>

包含子模板

在 ejs 中,可以使用 <%- include(file) %> 语法引入其他模板文件。

示例:

假如我们有两个文件 parent.ejschild.ejs,其中 parent.ejs 引用了 child.ejs

child.ejs 内容:

<h2>子模板</h2>

parent.ejs 内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>模板引用</title>
</head>
<body>
    <%- include('child.ejs') %>
    <p>主模板</p>
</body>
</html>

控制流语句

在 ejs 中,有一些特殊的语法,可以用来循环、判断等。

示例:

<% for(var i=0; i<list.length; i++) { %>
    <li><%= list[i] %></li>
<% } %>

<% if (user) { %>
    <h2><%= user.name %></h2>
<% } %>

<% switch (type) { %>
    <% case 'fruit': %>
        <p>水果</p>
    <% case 'vegetable': %>
        <p>蔬菜</p>
    <% default: %>
        <p>未知类型</p>
<% } %>

示例1:使用 ejs 渲染动态网页

下面是一个简单使用 ejs 渲染动态网页的示例。

假设我们有一个用户信息的数据对象:

const user = {
    name: '王妍',
    age: 20,
    gender: '女'
};

接下来我们使用 ejs 模板来渲染这个用户信息:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户信息</title>
</head>
<body>
    <h1><%= user.name %> 的个人信息</h1>
    <ul>
        <li>姓名: <%= user.name %> </li>
        <li>年龄: <%= user.age %> </li>
        <li>性别: <%= user.gender %> </li>
    </ul>
</body>
</html>

注意:在 ejs 中,我们可以使用 <%= %>语法来展示变量的值。

最后通过 ejs 的渲染函数来渲染这个模板:

const ejs = require('ejs');
const fs = require('fs');

const user = {
    name: '王妍',
    age: 20,
    gender: '女'
};

const template = fs.readFileSync(__dirname + '/views/user.ejs', 'utf8');
const html = ejs.render(template, { user: user });
console.log(html);

示例2:使用 ejs 来编写一个简单的文章列表

下面是一个示例,使用 ejs 模板引擎来渲染一个文章列表。

模板文件:views/articles.ejs

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>文章列表</title>
</head>
<body>
    <h1>文章列表</h1>
    <ul>
        <% for (var i = 0; i < articles.length; i++) { %>
            <li><a href="<%= articles[i].url %>"><%= articles[i].title %></a></li>
            <p><%= articles[i].summary %></p>
        <% } %>
    </ul>
</body>
</html>

数据对象:

const articles = [
    {
        title: 'Node.js 进阶教程',
        summary: '本教程详细讲解了 Node.js 的进阶特性和使用技巧。',
        url: 'http://www.example.com/nodejs-advanced'
    },
    {
        title: '如何学习 HTML5',
        summary: 'HTML5 是现代 Web 应用开发的核心技术,本文教你如何学习它。',
        url: 'http://www.example.com/learn-html5'
    },
    {
        title: 'React Web 开发实战',
        summary: '本课程详细讲解 React Web 开发的实战技巧和经验。',
        url: 'http://www.example.com/react-web'
    }
];

渲染代码:

const ejs = require('ejs');
const fs = require('fs');

const template = fs.readFileSync(__dirname + '/views/articles.ejs', 'utf8');
const html = ejs.render(template, { articles: articles });

console.log(html);

以上就是使用 ejs 的入门教程了,相信读者已经对其基本使用有所掌握了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js的Web模板引擎ejs的入门使用教程 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 详解微信小程序自定义组件的实现及数据交互

    下面我给出详解微信小程序自定义组件的实现及数据交互的完整攻略。内容分为以下几部分: 自定义组件的概念及基本用法 自定义组件的实现步骤 自定义组件与页面的数据交互 示例说明 1. 自定义组件的概念及基本用法 自定义组件是一种可以重复使用的自定义元素,由类似视图和逻辑的 WXML, WXSS 和 JS 结合而成。一般情况下,自定义组件的结构是由: wxml 文件…

    人工智能概论 2023年5月25日
    00
  • springboot-mongodb的多数据源配置的方法步骤

    下面是详细讲解 “springboot-mongodb的多数据源配置的方法步骤” 的完整攻略,包含两个示例说明。 第一步:导入相关依赖 首先,在 pom.xml 文件中添加 Spring Boot 和 MongoDB 的依赖项。 <dependencies> <!–Spring Boot相关依赖–> <dependency&…

    人工智能概论 2023年5月25日
    00
  • Python工程师必考的6个经典面试题

    下面我会详细讲解“Python工程师必考的6个经典面试题”的完整攻略。 1. 实现单例模式 单例模式指的是一个类只能创建一个实例。在Python中,实现单例模式有多种方法,包括使用装饰器、使用元类等。以下是使用装饰器的实现代码示例: def singleton(cls): instances = {} def wrapper(*args, **kwargs)…

    人工智能概览 2023年5月25日
    00
  • django中的数据库迁移的实现

    下面是关于”Django中的数据库迁移的实现”的完整攻略。 什么是数据库迁移 在介绍如何在Django中实现数据库迁移之前,我们先要了解什么是数据库迁移。在Django开发中,我们经常需要修改数据库模型,而这些修改可能会导致数据库结构的变化,比如添加、删除、修改模型属性等。为了使得这些变化能够被应用到数据库中,在Django中就需要进行数据库迁移。 简而言之…

    人工智能概论 2023年5月25日
    00
  • python 下 CMake 安装配置 OPENCV 4.1.1的方法

    下面是在Python环境下使用CMake来安装配置OpenCV 4.1.1的完整攻略,包含两条示例说明。 安装 CMake 首先需要安装 CMake 工具。CMake是跨平台的开源工具,可用于构建,测试和打包软件。可以从其官网https://cmake.org/download/下载对应平台的安装包进行安装。 下载OpenCV 4.1.1源码 访问OpenC…

    人工智能概览 2023年5月25日
    00
  • 详解Python OpenCV图像分割算法的实现

    下面我将详细讲解“详解Python OpenCV图像分割算法的实现”的完整攻略。 前言 在进行图像处理时,图像分割是非常重要的一个步骤,它可以将图像中的像素按照其特征或者属性分为不同的区域,方便后续对图像的处理。Python OpenCV图像分割算法的实现是一个非常重要的话题。在本篇文章中,我们将讨论基于Python和OpenCV的图像分割算法的实现方法和步…

    人工智能概论 2023年5月24日
    00
  • Spring Cloud 优雅下线以及灰度发布实现

    一、什么是Spring Cloud 优雅下线以及灰度发布实现 Spring Cloud是Spring生态系统中一套快速构建分布式系统的工具集,其中包括多个子项目,如Spring Cloud Netflix、Spring Cloud Eureka、Spring Cloud Config、Spring Cloud Zuul、Spring Cloud Stream…

    人工智能概览 2023年5月25日
    00
  • Lua 操作 MongoDB 数据库实例

    Lua 操作 MongoDB 数据库实例需要安装 luamongo 模块和 MongoDB 数据库驱动,下面是具体的操作步骤: 安装 luamongo 模块 根据你的操作系统类型,在 LuaRocks 官网上下载相应的 binary 或源码,例如下载 luamongo-0.5.6-1.rockspec 在终端中进入下载的目录,运行 luarocks inst…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部