Nodejs第4天:模板引擎artTemplate:模板引擎的基础概念、模板引擎的语法、案例

本文详细介绍了artTemplate模板引擎的基本概念、语法特性及其在实际项目中的应用。包括标准语法和原始语法的区别,如何进行数据输出、原文输出、条件判断、循环、子模板引用及模板继承。同时,提供了具体案例——学生档案管理系统,展示了模板引擎在node.js项目中的集成流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模板引擎artTemplate

目标

  • 能够使用模板引擎渲染数据
  • 能够使用模板引擎进行原文输出
  • 能够使用循环输出数据
  • 能够知道如何引用子模板
  • 能够知道如何如何进行模板继承

一. 模板引擎的基础概念

1.1 模板引擎

模板引擎是第三方模块。
让开发者以更加友好的方式拼接字符串,使项目代码更加清晰、更加易于维护。

// 未使用模板引擎的写法 
var ary = [{ name: '张三', age: 20 }]; 
var str = '<ul>'; 
for (var i = 0; i < ary.length; i++) { 
	str += '<li>\ 
		<span>'+ ary[i].name +'</span>\ 
		<span>'+ ary[i].age +'</span>\ 
	</li>'; 
}
str += '</ul>';
<!-- 使用模板引擎的写法 --> 
<ul>
	{{each ary}} 
		<li>{{$value.name}}</li> 
		<li>{{$value.age}}</li> 
	{{/each}} 
</ul>

1.2 art-template模板引擎

  1. 在命令行工具中使用 npm install art-template 命令进行下载
  2. 使用const template = require(‘art-template’)引入模板引擎
  3. 告诉模板引擎要拼接的数据和模板在哪 const html = template(‘模板路径’, 数据);
  4. 使用模板语法告诉模板引擎,模板与数据应该如何进行拼接

1.3 art-template代码示例

// 导入模板引擎模块 
const template = require('art-template'); 
// 将特定模板与特定数据进行拼接 
const html = template('./views/index.art',{ 
	data: { 
		name: '张三', 
		age: 20 
	} 
});
<div>
	<span>{{data.name}}</span> 
	<span>{{data.age}}</span> 
</div>

二. 模板引擎的语法

2.1 模板语法

  • art-template同时支持两种模板语法:标准语法和原始语法。
  • 标准语法可以让模板更容易读写,原始语法具有强大的逻辑处理能力。

标准语法: {{ 数据 }}
原始语法:<%=数据 %>

2.2 输出

将某项数据输出在模板中,标准语法和原始语法如下:

  • l 标准语法:{{ 数据 }}
  • 原始语法:<%=数据 %>
<!-- 标准语法 --> 
<h2>{{value}}</h2> 
<h2>{{a ? b : c}}</h2> 
<h2>{{a + b}}</h2> 

<!-- 原始语法 --> 
<h2><%= value %></h2> 
<h2><%= a ? b : c %></h2> 
<h2><%= a + b %></h2>

2.3 原文输出

如果数据中携带HTML标签,默认模板引擎不会解析标签,会将其转义后输出。

  • 标准语法:{{@ 数据 }}
  • 原始语法:<%-数据 %>
<!-- 标准语法 --> 
<h2>{{@ value }}</h2> 

<!-- 原始语法 --> 
<h2><%- value %></h2>

2.4 条件判断

<!-- 标准语法 --> 
{{if 条件}} ... {{/if}} 
{{if v1}} ... {{else if v2}} ... {{/if}} 

<!-- 原始语法 --> 
<% if (value) { %> ... <% } %> 
<% if (v1) { %> ... <% } else if (v2) { %> ... <% } %>

2.5 循环

  • 标准语法:{{each 数据}} {{/each}}
  • 原始语法:<% for() { %> <% } %>
<!-- 标准语法 --> 
{{each target}} 
	{{$index}} {{$value}} 
{{/each}} 

<!-- 原始语法 --> 
<% for(var i = 0; i < target.length; i++){ %> 
	<%= i %><%= target[i] %> 
<% } %>

2.6 子模版

使用子模板可以将网站公共区块(头部、底部)抽离到单独的文件中。

  • 标准语法:{{include ‘模板’}}
  • 原始语法:<%include(‘模板’) %>
<!-- 标准语法 --> 
{{include './header.art'}} 
<!-- 原始语法 --> 
<% include('./header.art') %>

2.7 模板继承

使用模板继承可以将网站HTML骨架抽离到单独的文件中,其他页面模板可以继承骨架文件

在这里插入图片描述
在这里插入图片描述

2.8 模板继承示例

<!doctype html> 
<html>
	<head>
		<meta charset="utf-8"> 
		<title>HTML骨架模板</title> 
		{{block 'head'}}{{/block}} 
	</head> 
	<body>
		{{block 'content'}}{{/block}} 
	</body> 
</html>
<!--index.art 首页模板--> 
{{extend './layout.art'}} 
{{block 'head'}} <link rel="stylesheet" href="custom.css"> {{/block}} 
{{block 'content'}} <p>This is just an awesome page.</p> {{/block}}

2.9 模板配置

  1. 向模板中导入变量 template.defaults.imports.变量名 = 变量值;
  2. 设置模板根目录 template.defaults.root = 模板目录
  3. 设置模板默认后缀 template.defaults.extname = ‘.art’

三. 案例-学生档案管理

案例文件压缩包已经上传至资源处,压缩包名字叫:Nodejs第4天案例-学生档案管理.zip

3.1 案例介绍 – 学生档案管理

目标:模板引擎应用,强化node.js项目制作流程。

知识点:http请求响应、数据库、模板引擎、静态资源访问。
在这里插入图片描述

3.2 制作流程

  1. 建立项目文件夹并生成项目描述文件
  2. 创建网站服务器实现客户端和服务器端通信
  3. 连接数据库并根据需求设计学员信息表
  4. 创建路由并实现页面模板呈递
  5. 实现静态资源访问
  6. 实现学生信息添加功能 7. 实现学生信息展示功能

3.3 第三方模块 router

功能:实现路由
使用步骤:
1. 获取路由对象
2. 调用路由对象提供的方法创建路由
3. 启用路由,使路由生效

const getRouter = require('router') 
const router = getRouter(); 
router.get('/add', (req, res) => { 
	res.end('Hello World!') 
})
server.on('request', (req, res) => { 
	router(req, res) 
})

3.4 第三方模块 serve-static

功能:实现静态资源访问服务
步骤:

  1. 引入serve-static模块获取创建静态资源服务功能的方法
  2. 调用方法创建静态资源服务并指定静态资源服务目录
  3. 启用静态资源服务功能
const serveStatic = require('serve-static') 
const serve = serveStatic('public') 
server.on('request', () => { 
	serve(req, res) 
})
server.listen(3000)

3.5 添加学生信息功能步骤分析

  1. 在模板的表单中指定请求地址与请求方式
  2. 为每一个表单项添加name属性
  3. 添加实现学生信息功能路由
  4. 接收客户端传递过来的学生信息
  5. 将学生信息添加到数据库中
  6. 将页面重定向到学生信息列表页面

3.6 学生信息列表页面分析

  1. 从数据库中将所有的学生信息查询出来
  2. 通过模板引擎将学生信息和HTML模板进行拼接
  3. 将拼接好的HTML模板响应给客户端
内容概要:本文档《Docker 新手入门指南》详细介绍Docker这一开源容器化平台,旨在帮助新手理解并掌握Docker的核心概念和基本操作。文中首先解释了Docker的概念及其相对于传统虚拟机的优势,如更快的启动速度、更低的资源占用和更好的隔离性。接着,文档提供了详细的安装步骤,包括不同操作系统下的安装方法以及针对国内用户的镜像加速配置。随后,文章深入讲解了镜像管理和容器操作的基础命令,如拉取镜像、运行容器等。进一步地,文档介绍了使用Dockerfile构建自定义镜像、实现数据持久化、进行端口映射以及利用Docker Compose管理多容器应用等高级技巧。最后,给出了一些学习建议和注意事项,鼓励读者动手实验并关注安全性。 适合人群:适合对容器技术感兴趣的初学者,尤其是有一定Linux基础或打算深入了解Docker的开发人员。 使用场景及目标:①帮助读者快速上手Docker,掌握从安装到实际操作的一系列技能;②通过实例演示,如构建Python Web服务、部署WordPress和搭建Jenkins环境,让读者能够将所学应用于实际项目中;③强调容器化的优势,如提高部署效率、解决环境差异问题。 阅读建议:建议读者跟随文档逐步操作,亲身体验每个步骤,同时参考官方文档和社区资源,不断实践以巩固所学知识。特别注意安全性和资源管理方面的提示,确保容器环境的安全稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值