模板引擎

1 .模板引擎基础

1.1模板引擎

主要功能就是拼接字符串(将HTML模板与数据拼接)

模板引擎不是node.js本身提供的,是第三方模块

让开发者以更友好的方式拼接字符串,是项目代码更加清晰,更加易于维护。

{{}} mustache语法 八字胡语法

1.2 art-template模板引擎

由腾讯公司出品 目前运行最快

  1. 安装:npm install art-template

该命令在哪执行就会把包下载到哪里 然后在安装了该引擎的目录下创建模板文件 和执行代码的文件

  1. 引入模板引擎const template=require(‘art-template’)require返回值是拼接字符串的方法 要用变量承接

  2. 告诉模板引擎要拼接的数据和模板在哪 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 模板配置

  1. 向模板中导入变量 template.defaults.imports.变量名=变量值;
  2. 设置模板根目录 template.defaults.root=模板目录//设置了之后 template方法中就可以直接写模板文件的名字 而不用写之前的路径
  3. 设置模板默认后缀 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中使用模板引擎相关推荐

  1. Node 03--在Node中使用模板引擎进行渲染

    使用readdir获取指定路径下的所有文件名 文件结构 实现代码 const fs = require('fs');fs.readdir('G:/pink_code/Node_Study/02',(e ...

  2. nodejs jade mysql_学习篇:NodeJS中的模板引擎:jade

    NodeJS 模板引擎作用:生成页面 在node常用的模板引擎一般是 1.jade --破坏式的.侵入式.强依赖(对原有的html体系不友好,走自己的一套体系) 2.ejs --温和的.非侵入式的.弱 ...

  3. ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签

    ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的: 标签类型 描述 普通标签 ...

  4. JavaScript中template模板引擎

    这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 template.js 一款 JavaScript 模板引擎, ...

  5. 在Apache案例中加入模板引擎

    效果图 1.js文件 var http=require('http') var fs=require('fs') var template=require('art-template') var se ...

  6. 六十四、SpringBoot中的模板引擎Thymeleaf

    @Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 使用Sprin ...

  7. 3、play中的模板引擎

    1.模板格式 Play默认的模板引擎是一种基于scala的安全模板引擎,尽管模板引擎使用Scala作为表达式语言,但是非常简单易学.参数类型使用后缀语法指定(例如: id:Long),泛型类型是使用[ ...

  8. Spring Boot中使用模板引擎引用资源

    目录 概念 演示 概念 在Spring Boot中可以通过模板引擎去引用资源,如果项目改变了,也是可以跑的,不需要自己手动一个个去改链接. 演示 运行截图如下: 但修改properties文件: se ...

  9. 【ST4】Java 中的模板引擎 StringTemplate

    1.概述 StringTemplate是一种基于java的模板引擎库,类似于velocity,FreeMarker.可以用于生成源代码.web页面.电子邮件等多种样式的文本.选择StringTempl ...

最新文章

  1. 第五篇:HMM 隐马尔可夫模型
  2. JAVA RPC:从上手到爱不释手
  3. 3个可以写进简历的京东AI NLP项目实战,走完这五步就是Top算法工程师
  4. 下巴痤疮的治疗方法有哪些?
  5. 38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?
  6. 15/100. Climbing Stairs
  7. H12-211数通HCNA题库解析(二)
  8. cmd批处理剪切_批处理复制文件到剪切板,读取剪切板内容到目录
  9. 量子计算机采用量子力学原理,量子计算机的工作是不是就是根据量子力学原理造的?...
  10. 在pycharm中查看opencv版本
  11. 最新服务器处理器天梯,至强cpu天梯图2020_intel服务器cpu排行榜2020
  12. dedecms织梦 list列表页pagesize数量不对
  13. 远程如何重装linux系统,独立服务器远程重装Linux系统
  14. Apple自动化利器AppleScript
  15. 关于销售的成本和收入
  16. 【JavaScript】用原生js实现幻灯片效果
  17. 洛谷 P4238 【模板】多项式求逆 ntt
  18. 500以内降噪蓝牙耳机推荐,2023年热门降噪蓝牙耳机推荐
  19. memtester --转载
  20. MYSQL误删除DELETE数据找回

热门文章

  1. 让动物保育理念能更贴近民众 街景服务与胜博发公益结合迈进大象保护区
  2. Angularts将前端数据生成报表
  3. java scp 上传文件_java基于Scp实现Linux下远程获取、上传文件
  4. 热门Epub阅读器介绍
  5. NHANES数据库数据下载
  6. 群智能算法第3关:粒子群算法 - 目标函数最优解计算
  7. 微信小程序监听实时地理位置变化事件接口申请
  8. springboot+基于微信小程序的心理医生系统的设计实现 毕业设计-附源码191610
  9. 可能与不可能的边界:P/NP问题趣史
  10. 计算机等级考试要求改文档名,计算机等级考试