一、导入模板引擎
const template = require('art-template')
template是用来拼接接字符串的
2.要在模板中显示数据,对象类型,返回拼接好的字符串
const views = path.join(__dirname ‘目录', '目录')
二、基本语法
标准语法:{{name}}
原始语法:<%= name %>
2.标签解析:
标准语法解决:{{@ name}}
原始语法解决::<%- name %>
3.条件判断:
标准语法:
{{if 条件(age>18)}}
年龄大于十八
{{else if age<15}}
年龄小于十五
{{else}}
年龄不符合要求
{{/if}}
原始语法:
<% if (age >18) { %>
年龄大于十八
<% } if (age<15){%>
年龄小于十五
<%}else{%>
年龄不符合要求
<% } %>
4.循环模板
基本语法:
{{each 数据}}
{{$index}}-----循环索引
{{$value}}
{{/each}}
原始语法: <% for() {%> <%}%>:
5.子模板:
{{include ‘目标路径’}}
<% include (‘目标路径’)%>
6.模板继承
{{extend ‘目录’}}
{{block ‘head’}} {{/block}}
7.模板配置:
1.向模板中导入变量:template.defaults.imports.变量名 = 变量值
2.设置模板根目录:template.defaults.root=模板目录
3.配置模板的默认后缀:javascripttemplate.defaults.extname = ‘.art’
**
三、过滤器
**
1.注册过滤器:
传入的日期放置于“data”
数据中
template.defaults.imports.dateFormat = function(date, format){
//return new Data(data).toLocalString()
const datetime = new Date(dateTime)
...}
template.defaults.imports.timestamp = function(value){
return value * 1000...}
- 开启内建调试器:
语法:template.defaults.debug = true
- 压缩页面(不影响渲染速度,加快网络传输)
语法:template.defaults.minimize=true
- 防止
xss
攻击
语法:template.defaults.escape= true
四、问题解决:
Write after end:
npm
运行服务器,在调用某一个接口时报错Error
[ERR_STREAM_WRITE_AFTER_END] write after end,
虽然实际接口功能未受影响。
原因是:
五.补充说明:path.join
和path.resolve
1.path.resolve
总是返回一个以相对于当前的工作目录(working directory)
的绝对路径。
2.对于以/开始的路径片段,path.join
只是简单的将该路径片段进行拼接,而path.resolve
将以/开始的路径片段作为根目录,在此之前的路径将会被丢弃,就像是在terminal
中使用cd
命令一样。