0
点赞
收藏
分享

微信扫一扫

art-template基础,Write after end问题解决

洲行 2022-04-30 阅读 51

文章目录

一、导入模板引擎

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.joinpath.resolve

1.path.resolve总是返回一个以相对于当前的工作目录(working directory)的绝对路径。

2.对于以/开始的路径片段,path.join只是简单的将该路径片段进行拼接,而path.resolve将以/开始的路径片段作为根目录,在此之前的路径将会被丢弃,就像是在terminal中使用cd命令一样。

举报

相关推荐

0 条评论