node中使用模板引擎
模板引擎
1 .模板引擎基础
1.1模板引擎
主要功能就是拼接字符串(将HTML模板与数据拼接)
模板引擎不是node.js本身提供的,是第三方模块
让开发者以更友好的方式拼接字符串,是项目代码更加清晰,更加易于维护。
{{}} mustache语法 八字胡语法
1.2 art-template模板引擎
由腾讯公司出品 目前运行最快
- 安装:
npm install art-template
该命令在哪执行就会把包下载到哪里 然后在安装了该引擎的目录下创建模板文件 和执行代码的文件
引入模板引擎
const template=require(‘art-template’)
require返回值是拼接字符串的方法 要用变量承接告诉模板引擎要拼接的数据和模板在哪
const html =template('模板路径',数据);
返回值是拼接好的字符串 模板路径要写绝对路径 第二个参数是要在模板中显示的数据,是对象类型*如果要拼接的模块和数据在同一个文件中 就可以根据id来拼接,模块路径就可以
HTML模板的后缀名是.art
const path = require('path')
导入拼接字符串模块
path里的join(,,)是拼接字符串的方法 path.join(‘字符串’,‘字符串’,变量)
__dirname 当前文件所在的路径(取到当前文件的上一级目录)
2.模板引擎语法
2.1模板语法
当前模板引擎同时支持两种模板语法:标准语法和原始语法
标准语法让模板更容易读写,原始语法具有强大的逻辑处理能力
- 标准语法:{{ 数据 }}
- 原始语法:<%=数据 %>
2.2输出
如何将数据展示到页面当中
语法内部可以进行简单的运算 显示的是运算结果
2.3原文输出
如果数据中携带HTML标签,默认模板引擎不会解析标签,会将其转义后输出
将标签解析
- 标准语法{{ @数据 }}
- 原始语法<%= @数据 %>
2.4条件判断
在模板中可以根据条件来决定显示哪块HTML代码
标准语法
{{if条件}}…{{/if}}
{{if v1}}…{{else if v2}}…{{/if}}
原始语法
<% if(value) {%>…<% } %>
<% if(v1) {%>…<% } else if (v2) {%>…<% } %>
可以写原生js代码
2.5模板循环
each是art-template的模板语法 专属的
标准语法
{{each 数据}}//数据为要循环的对象
{{KaTeX parse error: Expected 'EOF', got '}' at position 6: index}̲} //当前循环索引 {{value}}//当前循环数据
{{/each}}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ldkP0Q6C-1626133610466)(C:\Users\甜味少女静\Pictures\QQ截图20210710103933.png)]//循环生成li标签
原始语法
<% for(){%>
<%= i%> <%= 数据%>
<%}%>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uv5OHv8K-1626133610469)(C:\Users\甜味少女静\Pictures\QQ截图20210710104201.png)]
2.6子模版
使用子模版可以将网站公共区块(头部、底部)抽离到单独的文件中。
- 标准语法{{include ‘子模版路径’}}
- 原始语法<%include(‘模板路径’)%>
2.7 模板继承
使用模板继承可以将网站HTML骨架(html标签和body标签)抽离到单独的文件中,其他页面模板可以继承骨架文件
骨架模板挖坑:{{block ‘自定义名字’}}{{/block}}
继承{{extend ’骨架模板路径‘}}
填充:{{block ’骨架模板中定义的名字‘}}要填充的内容 例:<link rel = ‘stylesheet’ herf=(“custom.css”)> {{/block}}//会在相应位置填充上内容
2.8 模板配置
- 向模板中导入变量 template.defaults.imports.变量名=变量值;
- 设置模板根目录 template.defaults.root=模板目录//设置了之后 template方法中就可以直接写模板文件的名字 而不用写之前的路径
- 设置模板默认后缀 template.defaults.extname=’.art’
3.案例
3.1 案例介绍-学生档案管理
npm init -y
生成package.json文件//项目描述文件
npm install mongoose//连接数据库要用的第三方模块
mongoose.connect(‘mongodb://localhost/数据库名字’).then((){}).catch((){})//连接数据库,连接成功则执行then方法 否则执行catch方法
stall mongoose//连接数据库要用的第三方模块
mongoose.connect(‘mongodb://localhost/数据库名字’).then((){}).catch((){})//连接数据库,连接成功则执行then方法 否则执行catch方法
node中使用模板引擎相关推荐
- Node 03--在Node中使用模板引擎进行渲染
使用readdir获取指定路径下的所有文件名 文件结构 实现代码 const fs = require('fs');fs.readdir('G:/pink_code/Node_Study/02',(e ...
- nodejs jade mysql_学习篇:NodeJS中的模板引擎:jade
NodeJS 模板引擎作用:生成页面 在node常用的模板引擎一般是 1.jade --破坏式的.侵入式.强依赖(对原有的html体系不友好,走自己的一套体系) 2.ejs --温和的.非侵入式的.弱 ...
- ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签
ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的: 标签类型 描述 普通标签 ...
- JavaScript中template模板引擎
这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...
- 在Apache案例中加入模板引擎
效果图 1.js文件 var http=require('http') var fs=require('fs') var template=require('art-template') var se ...
- 六十四、SpringBoot中的模板引擎Thymeleaf
@Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 使用Sprin ...
- 3、play中的模板引擎
1.模板格式 Play默认的模板引擎是一种基于scala的安全模板引擎,尽管模板引擎使用Scala作为表达式语言,但是非常简单易学.参数类型使用后缀语法指定(例如: id:Long),泛型类型是使用[ ...
- Spring Boot中使用模板引擎引用资源
目录 概念 演示 概念 在Spring Boot中可以通过模板引擎去引用资源,如果项目改变了,也是可以跑的,不需要自己手动一个个去改链接. 演示 运行截图如下: 但修改properties文件: se ...
- 【ST4】Java 中的模板引擎 StringTemplate
1.概述 StringTemplate是一种基于java的模板引擎库,类似于velocity,FreeMarker.可以用于生成源代码.web页面.电子邮件等多种样式的文本.选择StringTempl ...
最新文章
- 第五篇:HMM 隐马尔可夫模型
- JAVA RPC:从上手到爱不释手
- 3个可以写进简历的京东AI NLP项目实战,走完这五步就是Top算法工程师
- 下巴痤疮的治疗方法有哪些?
- 38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?
- 15/100. Climbing Stairs
- H12-211数通HCNA题库解析(二)
- cmd批处理剪切_批处理复制文件到剪切板,读取剪切板内容到目录
- 量子计算机采用量子力学原理,量子计算机的工作是不是就是根据量子力学原理造的?...
- 在pycharm中查看opencv版本
- 最新服务器处理器天梯,至强cpu天梯图2020_intel服务器cpu排行榜2020
- dedecms织梦 list列表页pagesize数量不对
- 远程如何重装linux系统,独立服务器远程重装Linux系统
- Apple自动化利器AppleScript
- 关于销售的成本和收入
- 【JavaScript】用原生js实现幻灯片效果
- 洛谷 P4238 【模板】多项式求逆 ntt
- 500以内降噪蓝牙耳机推荐,2023年热门降噪蓝牙耳机推荐
- memtester --转载
- MYSQL误删除DELETE数据找回