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

yizhihongxing

下面我将详细讲解“详解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日

相关文章

  • Vue路由History模式分析

    Vue路由History模式分析 Vue Router 是 Vue 的官方路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。Vue Router 可以让我们通过前端路由来实现页面之间的切换和跳转,它的 History 模式一般用于生产环境并且需要后端支持。 History 模式 Vue Router 根据浏览器的不同,支持两种路由…

    node js 2023年6月8日
    00
  • 一文带你搞懂Node中的流

    一文带你搞懂Node中的流 什么是流 在Node.js中,流(Stream)是一种处理数据的抽象接口,是在处理大量数据时一种更加高效、可读性更强的解决方案。 流的本质就是ReadStream和WriteStream,它可以分为读流和写流。 Readable 读流也就是Readable,它是一个抽象类,不能用它自己,需要继承它后才能用。Readable提供了一…

    node js 2023年6月8日
    00
  • 实例分析javascript中的异步

    实例分析JavaScript中的异步的完整攻略 JavaScript 是一种基于事件驱动的编程语言,因此它也支持异步操作。异步的本质是指不需要立即完成的操作,而是在适当的时候完成。在 JavaScript 中,异步操作应用非常广泛,例如 Ajax 请求、定时器、事件回调等等。 什么是异步 在讲解 JavaScript 中的异步操作之前,我们先来了解一下什么是…

    node js 2023年6月8日
    00
  • node.js express框架简介与实现

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可用于快速构建高性能、可扩展的网络应用程序。Express.js是一个基于Node.js的快速、灵活的Web应用框架。 一、Node.js express框架简介 1.1 什么是Express框架 Express框架是一个快速、开放、极简的Web应用框架,是基于Node.js环境的…

    node js 2023年6月8日
    00
  • nodejs 实现简单的文件上传功能(示例详解)

    让我来详细讲解一下“nodejs 实现简单的文件上传功能(示例详解)”这篇文章的完整攻略。 简介 该文章主要讲解了如何通过nodejs实现简单的文件上传功能。文章首先介绍了前端实现文件上传的方式,然后详细介绍了通过nodejs实现文件上传的流程和代码实现,并结合了两个示例演示了如何通过nodejs实现文件上传的功能。 前端文件上传方式 文章首先介绍了前端文件…

    node js 2023年6月8日
    00
  • 一篇文章带你从零快速上手Rollup

    一篇文章带你从零快速上手Rollup 准备工作 在开始学习Rollup之前,需要先安装Node.js和npm,建议安装最新版本。 在终端输入以下命令检查是否安装成功: node -v # 检查Node.js版本 npm -v # 检查npm版本 安装Rollup 使用npm安装Rollup,终端输入以下命令: npm install rollup –sav…

    node js 2023年6月8日
    00
  • NodeJS的模块写法入门(实例代码)

    当我们在使用NodeJS开发应用时,经常需要用到其内置或第三方的模块。这些模块通常采用一定的规则来编写,并且有助于代码的组织、重用和管理。本文将介绍NodeJS模块的写法入门,并提供两个示例说明。 基本概念 在NodeJS中,模块是特殊的JavaScript文件,通常包含某个功能的实现。在一个模块中,可以定义变量、函数、类等,并可以通过module.expo…

    node js 2023年6月8日
    00
  • node.js 用socket实现聊天的示例代码

    下面是讲解“node.js用socket实现聊天的示例代码的完整攻略”。 1.准备工作 首先,我们需要准备node.js环境。你可以在官网上下载对应的安装包,安装完成后,打开命令行工具,输入命令 node -v,如果命令行中输出你的node.js版本号,则说明你已经成功安装node.js环境。如果没有,则需要重新检查安装。 接下来,我们需要安装socket.…

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