详解Express笔记之动态渲染HTML(新手入坑)

下面我将详细讲解“详解Express笔记之动态渲染HTML(新手入坑)”完整攻略,具体内容如下:

什么是动态渲染HTML

动态渲染HTML是指在服务器端生成HTML代码,并将其发送到客户端显示,与静态HTML文件不同,静态HTML文件是在客户端本地存储的HTML文件,而动态渲染HTML是根据客户端请求的不同数据动态生成不同的HTML网页。动态渲染HTML主要是由服务器端脚本语言,如Node.js、PHP、Python等来实现的。其中,Node.js的Express框架可以实现快速的、灵活的动态渲染HTML。

如何使用Express实现动态渲染HTML

使用Express实现动态渲染HTML需要借助View Engine,常见的View Engine有EJS和Pug两种。这里我们以EJS为例进行讲解。

步骤一:安装EJS模板引擎

在使用EJS模板引擎前,需要先通过npm安装。可以在终端输入以下命令进行安装:

npm install ejs --save

步骤二:配置Express应用程序

在Express应用程序中,需要设置EJS模板引擎作为默认的View Engine。可以通过以下代码进行配置:

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

// 设置 EJS 为默认的模板引擎
app.set('view engine', 'ejs');

步骤三:创建EJS模板文件

在Express应用程序中,需要创建EJS模板文件,包含HTML页面的具体结构和样式。模板文件的后缀名为.ejs。以下是一个简单的模板文件示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title><%= title %></title>
</head>
<body>
    <h1><%= heading %></h1>
    <p><%= content %></p>
</body>
</html>

步骤四:动态渲染HTML页面

最后,在Express应用程序中,需要通过res.render()函数来动态渲染HTML页面。可以通过以下代码对前面创建的模板文件进行动态渲染:

app.get('/', function(req, res) {
    const heading = 'Welcome to EJS Tutorial';
    const content = 'This is a tutorial about EJS template engine';
    res.render('home', {heading: heading, content: content});
});

在上面的代码中,我们设置了一个路由,当访问'/'时,会渲染出名为'home'的EJS模板文件,并且向模板文件传递了两个参数:heading和content。

示例说明

以下是两个简单的示例,演示了如何使用Express实现动态渲染HTML:

示例一:在Express中使用EJS模板引擎

在这个示例中,我们将创建一个基于Express和EJS的简单网站。首先,需要安装并引入依赖项(Express和EJS),并设置应用程序:

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

app.use(express.static('public'));

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

app.listen(3000, function() {
    console.log('Server started on port 3000');
});

在应用程序中,我们通过express.static()中间件来指示Express将静态文件提供给客户端。设置View Engine为EJS的方式在上面已经讲过了。

接下来,我们创建一个EJS模板文件index.ejs,实现以下功能:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title><%= title %></title>
</head>
<body>
    <h1><%= heading %></h1>
    <p><%= content %></p>
</body>
</html>

在这个模板文件中,我们使用了EJS的语法,通过<%= ... %>标记来实现对数据的动态渲染。

下面,我们在Express应用程序中添加路由,操作请求并返回数据:

app.get('/', function(req, res) {
    const title = 'Home';
    const heading = 'Welcome to my website';
    const content = 'This is a sample web application built with Node.js and EJS.';
    res.render('index', {title: title, heading: heading, content: content});
});

在这个路由函数中,我们创建了三个参数:title、heading和content,并向模板文件传递了这三个参数。最后,通过res.render()函数将结果渲染到EJS模板文件中。

示例二:在Express中使用Pug模板引擎

在这个示例中,我们将创建一个基于Express和Pug的简单网站。首先,需要安装并引入依赖项(Express和Pug),并设置应用程序:

const express = require('express');
const app = express();
app.use(express.static('public'));

app.set('view engine', 'pug');

app.listen(3000, function() {
    console.log('Server started on port 3000');
});

在应用程序中,我们通过express.static()中间件来指示Express将静态文件提供给客户端。设置View Engine为Pug的方式在上面已经讲过了。

接下来,我们创建一个Pug模板文件index.pug,实现以下功能:

html
    head
        meta(charset='utf-8')
        title= title
    body
        h1= heading
        p= content

在这个模板文件中,我们使用了Pug的语法(基于缩进),以更简洁的方式来表达同样的意思。

下面,我们在Express应用程序中添加路由,操作请求并返回数据:

app.get('/', function(req, res) {
    const title = 'Home';
    const heading = 'Welcome to my website';
    const content = 'This is a sample web application built with Node.js and Pug.';
    res.render('index', {title: title, heading: heading, content: content});
});

在这个路由函数中,我们创建了三个参数:title、heading和content,并向模板文件传递了这三个参数。最后,通过res.render()函数将结果渲染到Pug模板文件中。

结论

通过这篇攻略,我们学习了如何使用Express框架的View Engine来实现动态渲染HTML,以及两个基于Express和两种不同模板引擎(EJS和Pug)的简单示例。使用动态HTML渲染的好处在于可以根据客户端请求的不同数据动态生成不同的HTML网页,从而提高网页的交互性和用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Express笔记之动态渲染HTML(新手入坑) - Python技术站

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

相关文章

  • 基于nodejs res.end和res.send的区别

    首先,需要了解的是res.end()和res.send()都是Node.js用于向客户端发送HTTP响应的方法。它们都可以发送内容到客户端,但是在某些情况下它们会有些微的差异,下面就详细讲解一下它们之间的区别。 1. res.end() 1.1 作用 res.end()是Node.js内置HTTP模块的方法之一,用于结束响应进程并向客户端发送最后一个数据块。…

    node js 2023年6月8日
    00
  • 跟我学Node.js(四)—Node.js的模块载入方式与机制

    跟我学Node.js(四)—Node.js的模块载入方式与机制 什么是模块 在Node.js中,每一个JavaScript文件都可以看作为一个独立的模块,而这些模块可以被其他JavaScript文件所引用和调用。模块可以帮助我们实现代码的重用,提高开发效率。 Node.js支持的模块载入方式 Node.js支持两种方式进行模块的载入:同步和异步。 同步方…

    node js 2023年6月8日
    00
  • Vue项目通过node连接MySQL数据库并实现增删改查操作的过程详解

    让我详细讲解一下Vue项目通过node连接MySQL数据库并实现增删改查操作的过程。 准备工作 首先,你需要有一个Vue项目,可以使用Vue CLI等工具创建一个空白项目。 其次,你需要安装一些依赖,包括mysql、express、body-parser、cors等,可以通过npm install命令安装。 创建数据库和数据表 打开MySQL数据库客户端,创…

    node js 2023年6月8日
    00
  • PHP的password_hash()使用实例

    接下来我将详细讲解“PHP的password_hash()使用实例”的完整攻略,包括它的基本介绍、用法、示例说明等。 1. 基本介绍 password_hash() 是 PHP 5.5 引入的密码哈希函数,用于安全存储密码。它可以将原始密码加密成一个字符串形式,然后将它保存到数据库中。之后可以使用 password_verify() 函数来验证用户提交的密码…

    node js 2023年6月8日
    00
  • 让nodeJS支持ES6的词法—-babel的安装和使用方法

    我来详细讲解一下“让nodeJS支持ES6的词法—-babel的安装和使用方法”的完整攻略。 1. 什么是babel babel是一个JavaScript编译器,能够将 ECMAScript 6/7/8/9 的代码转换为向后兼容的 JavaScript 代码(ES5 或更低版本的 JavaScript 代码)。我们可以使用它来将使用最新JavaScrip…

    node js 2023年6月8日
    00
  • node.js基于fs模块对系统文件及目录进行读写操作的方法详解

    Node.js基于fs模块对系统文件及目录进行读写操作的方法详解 Node.js提供了fs模块(File System Module),用于对系统中的文件和目录进行读写操作。通过fs模块,可以实现文件的读取、写入、读取目录等操作。 读取文件内容 使用fs模块的readFile()方法可以读取指定文件内容,并将读取的内容传递给回调函数,如下所示: const …

    node js 2023年6月8日
    00
  • 四叉树有损位图压缩处理程序示例

    四叉树有损位图压缩处理程序示例攻略 简介 四叉树是一种树型数据结构,它将平面划分为四个象限,每个节点都表示一个矩形区域。通过将图像中的每个像素点添加到四叉树中,可以实现对图像的压缩和处理。本文将介绍如何使用四叉树实现有损位图压缩处理程序。 程序实现步骤 将原图像转换为灰度图像; 将灰度图像转换为二值图像; 对于二值图像,将其划分为若干个相等的矩形区域; 对每…

    node js 2023年6月8日
    00
  • 高吞吐、线程安全的LRU缓存详解

    高吞吐、线程安全的LRU缓存详解 本文将对一种高吞吐、线程安全的LRU缓存的实现方法进行详细讲解。 什么是LRU缓存 LRU缓存是一种最近最少使用缓存容器,通常用于存储常用的数据,避免重复计算和读取磁盘或网络等慢速数据的操作。 LRU缓存中的元素按照被使用的最近频率排序,频率最低的元素排在队列的最前面,频率最高的元素排在队列的最后面。当缓存容量满了之后,新的…

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