详解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中require路径问题

    当我们在NodeJS中使用require函数来加载依赖模块时,路径的设置非常重要,因为路径设置不正确,将导致程序运行时无法加载模块。下面我们来浅谈一下NodeJS中require路径问题的相关知识。 常用路径类型 在NodeJS中,常用的路径类型有以下三种: 绝对路径:以文件系统根目录为起点的路径,如 /usr/local/bin。 相对路径:以当前文件所在…

    node js 2023年6月8日
    00
  • Node.js 异步编程之 Callback介绍(一)

    “Node.js 异步编程之 Callback介绍(一)”这篇文章主要介绍了 Node.js 中回调函数的概念和使用方法,以及如何实现异步编程。下面是完整的攻略: 1. 回调函数是什么 回调函数是 Node.js 异步编程的重要概念之一。它是在一个函数执行完成后,通过参数调用另一个函数并把执行结果作为参数传递给它。 回调函数的实际应用非常广泛,比如读取文件、…

    node js 2023年6月8日
    00
  • 使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目

    关于“使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目”的完整攻略,我们可以分为以下几个部分来进行讲解。 I. 环境准备 首先,需要安装Node.js,并且建议安装最新版本。在安装完成之后,我们可以打开终端(Command Prompt或者Terminal),输入以下命令: npm install -g grunt-cli 这个命令…

    node js 2023年6月8日
    00
  • vue-cli3单页构建大型项目方案

    一、如何使用vue-cli3创建单页应用项目? Vue CLI是vue官方推出的一个全新的脚手架工具,它可以帮助我们快速地构建一个基于Vue.js的单页应用程序。 首先需要在电脑上安装 Node.js 与 npm,然后在命令行工具中执行以下命令进行安装: npm install -g @vue/cli 安装完成之后,在命令行中执行以下命令来创建一个新的Vue…

    node js 2023年6月9日
    00
  • Node.JS使用Sequelize操作MySQL的示例代码

    我来为你详细讲解一下“Node.JS使用Sequelize操作MySQL的示例代码”的完整攻略。 1.准备工作 在开始使用Sequelize操作MySQL之前,你需要安装以下两项组件: MySQL数据库:由于本文是以MySQL为例,所以我们需要安装MySQL数据库。如果你已经装好了MySQL数据库,可以跳过这一步; Node.js:Sequelize是一个基…

    node js 2023年6月8日
    00
  • JavaScript中的this陷阱的最全收集并整理(没有之一)

    JavaScript中的this陷阱攻略 简介 JavaScript中的关键字this在很多情况下会导致一些没有预料到的结果,对于这种情况我们称之为this陷阱。为了避免陷入这种情况,必须对this的行为有深入的了解。本文收集并整理了JavaScript中的this陷阱,希望能够帮助大家更好地使用this。 this陷阱 1. 隐式绑定的行为 传统方式下,J…

    node js 2023年6月8日
    00
  • nodejs npm install全局安装和本地安装的区别

    nodejs是一款非常流行的服务器端JavaScript运行环境,npm是随之而来的nodejs的官方软件包管理器。npm提供了全局安装和本地安装两种方式,它们的区别如下。 全局安装 全局安装是指在全局环境下安装指定的软件包,这样该软件包就可以被任何项目所调用。全局安装是通过在命令行中使用-g选项进行安装的。例如: npm install -g 包名 全局安…

    node js 2023年6月8日
    00
  • node.js中的console.trace方法使用说明

    Node.js中的console.trace方法使用说明 console.trace()是Node.js中提供的一个用于跟踪代码调用过程的方法。在开发过程中,当我们需要了解代码执行的过程中调用了哪些函数以及函数调用的顺序时,console.trace()方法是一个非常有用的工具。 使用方法 使用console.trace()方法只需要在代码中调用该方法即可。…

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