NodeJs 第二十一章 模版引擎

模板引擎是一种用于生成动态网页的工具。它将静态的模板文件与动态的数据源相结合,生成最终的网页。模板引擎通常用于Web开发中,可以方便地将数据动态地插入到页面中,从而生成具有动态内容的网页。

模板引擎的核心功能是数据绑定和逻辑控制。

  • 数据绑定指的是将模板中的占位符替换为实际的数据,可以是从数据库中读取的数据,也可以是用户输入的数据。
  • 逻辑控制指的是根据一些条件来决定模板中的哪些部分需要展示或隐藏。

常见的模板引擎有很多,例如Jinja2MustacheHandlebars等。这些引擎提供了丰富的语法和功能,以满足不同的需求。它们通常支持循环、条件判断、过滤器等功能,使开发者能够更方便地进行网页开发。

使用模板引擎的步骤通常包括以下几个步骤:

  1. 定义模板文件:编写包含占位符的模板文件,用于描述最终网页的结构和内容。
  2. 准备数据:从数据源中获取数据,可以是数据库、API接口、用户输入等。
  3. 绑定数据:将数据绑定到模板中的占位符,生成最终的网页。
  4. 渲染网页:将生成的网页返回给用户浏览器,展示给用户。

通过使用模板引擎,开发者可以将网页的结构和内容分离开来,提高代码的可维护性和复用性。同时,模板引擎也提供了一种易于理解和使用的方式来生成动态网页,降低了开发的难度和复杂度。

现代web开发由两种渲染方式

  • 客户端渲染,例如:vuereact框架
    • 客户端向服务端发送请求获取 html
    • 客户端向服务端发送请求获取jscss资源
    • 客户端渲染
  • 服务端渲染,例如:vue ssrreact ssr
    • 客户端向服务端发送请求获取 html,此时html是渲染好的页面
    • 客户端向服务端发送请求获取jscss资源

完整渲染流程

在这里插入图片描述
本章节主要介绍 ejs,不使用框架,属于早期前后端未分离的开发模式。只做了解。

简单 demo

const ejs = require("ejs");ejs.renderFile("./test.ejs", {number: Math.random(),}).then((result) => {console.log(result);});const str = `
生成的数字是:<%= number %>
`;const result = ejs.render(str, {number: Math.random(),
});console.log(result);

express 内部已经帮我们实现了模版引擎的方法,我们只需要使用 response.render 即可。

详细内容可以参考 官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/423046.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPT-4 的决策在股市中进行量化投资

论文题目:Can Large Language Models Beat Wall Street? Unveiling the Potential of AI in Stock Selection 论文链接:https://arxiv.org/abs/2401.03737 博客地址:https://www.marketsense-ai.com/ 从本质上来说&#xff0c;股票选择是个价格发现机制&#xff0c;在股票投…

JAVA:OFD Reader Writer 开源库技术解析

1、简述 OFD Reader & Writer 是一个由开源社区推动的 OFD 文件处理库&#xff0c;它旨在提供对 OFD 格式文件的读取和写入功能。这一开源项目为开发者提供了强大而灵活的工具&#xff0c;使得在应用程序中处理和生成 OFD 文件变得更加容易和高效 开源地址&#xff1a;htt…

【开源】基于JAVA语言的新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

【江科大】STM32:定时器中断

文章目录 TIM&#xff08;Timer&#xff09;定时器根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型基本定时器通用定数器 高级定时器 时钟&#xff08;时钟电路&#xff09;的作用是什么&#xff1a;设置定时器触发中断普通方法&#xff1a;预分频器时序…

《WebKit 技术内幕》学习之九(2): JavaScript引擎

2 V8引擎 2.1 基础 V8是一个开源项目&#xff0c;也是一个JavaScript引擎的实现。它最开始是由一些语言方面的专家设计出来的&#xff0c;后被Google收购&#xff0c;成为了JavaScript引擎和众多相关技术的引领者。其目的很简单&#xff0c;就是为了提高性能。因为在当时之前…

FastDFS分布式文件存储

为什么会有分布式文件系统&#xff1f; 分布式文件系统是面对互联网的需求而产生。因为互联网时代要对海量数据进行存储。很显然靠简单的增加硬盘个数已经满足不了我们的要求。因为硬盘传输速度有限但是数据在急剧增长&#xff0c;另外我们还要要做好数据备份、数据安全等。采用…

Vue2中CesiumV1.113.0加载离线地图

Vue2中CesiumV1.113.0加载离线地图&#xff0c;本文以天地图为例。 1.使用nodejs获取天地图 新建nodejsdownmap项目文件夹&#xff0c;初始化项目 npm init -y src/index.js // An highlighted block var Bagpipe require(bagpipe) var fs require("fs"); var r…

Kafka-服务端-日志存储

基本概念 首先需要了解的是&#xff0c;Kafka使用日志文件的方式保存生产者发送的消息。每条消息都有一个offset值来表示它在分区中的偏移量&#xff0c;这个offset值是逻辑值&#xff0c;并不是消息实际存放的物理地址。 offset值类似于数据库表中的主键&#xff0c;主键唯一…

【GitHub项目推荐--中国 Web 开发者路线图】【转载】

中国 Web 开发者路线图 在你学技术进阶的路上&#xff0c;如果你对接下来要学习的内容感到困惑&#xff0c;可以看看这个开源项目&#xff0c;这是中国 Web 开发者路线图。 它会让你对技术全景有一个了解&#xff0c;并在为你提供指导&#xff0c;该路线图并不会鼓励你选择时…

【GitHub项目推荐--基于 Flutter 的游戏引擎】【转载】

Flame 引擎的目的是为使用 Flutter 开发的游戏会遇到的常见问题提供一套完整的解决方案。 目前 Flame 提供了以下功能&#xff1a; 游戏循环 (game loop) 组件/对象系统 (FCS) 特效与粒子效果 碰撞检测 手势和输入支持 图片、动画、精灵图 (sprite) 以及精灵图组 一些简化…

【GitHub项目推荐--12306 抢票助手 python】【转载】

这个项目名很干脆&#xff0c;不知道以为是 12306 网站的源码&#xff0c;其实不是这是全 GitHub最德高望重的抢票小助手&#xff0c;功能一直在更新&#xff0c;且现已支持 Python 3.6 以上版本。 开源地址&#xff1a;https://github.com/testerSunshine/12306

深度学习|RCNNFast-RCNN

1.RCNN 2014年提出R-CNN网络&#xff0c;该网络不再使用暴力穷举的方法&#xff0c;而是使用候选区域方法&#xff08;region proposal method&#xff09;创建目标检测的区域来完成目标检测的任务&#xff0c;R-CNN是以深度神经网络为基础的目标检测的模型 &#xff0c;以R-C…