引言

  • art-template过滤器在我看来,其实就是定义一个函数,模板字符串通过调用该函数处理相关的数据,得到相应的返回结果,显示在页面上。因此我们可以注册一个过滤器,处理相关的数据。这里使用node+express举例子。art-template过滤器

下载相关的包

 npm install express-art-template art-template --save

art-template过滤器语法

  • 注册过滤器

注册了两个过滤器dateFormat、timestamp,其实就是为 template.defaults.imports添加相应的方法来处理我们的数据。

 template.defaults.imports.dateFormat = function(date, format){...}
template.defaults.imports.timestamp = function(value){...}
  • 使用 过滤器

它的语法类似与管道操作符,即上一个过滤器的 输出值 或者 数据 会作为下一个过滤器的参数

 {{data | timestamp |  dateFormat}}

使用 art-template

在app文件引入以下文件,art-template默认是读取项目根目录views文件夹下的art文件,可以通过 app.engine('html', require('express-art-template'))修改为html文件,也可以修改读取的文件夹app.set('views', '具体文件夹'),可以使用相对路径或者绝对路径。

 var express = require('express')

 const template = require('art-template')
app.engine('html', require('express-art-template')) app.get('/filter', (req, res) =>{
res.render('filter.html')
}) //注册一个过滤器 通过处理时间戳 转为日期格式
template.defaults.imports.getDate = (dateTime) =>{
const datetime = new Date(dateTime) const year = datetime.getFullYear()
const month = ("0" + (datetime.getMonth() + 1)).slice(-2)
const date = ("0" + datetime.getDate()).slice(-2)
const hour = ("0" + datetime.getHours()).slice(-2)
const minute = ("0" + datetime.getMinutes()).slice(-2)
const second = ("0" + datetime.getSeconds()).slice(-2) return year + "-"+ month +"-"+ date +" "+ hour +":"+ minute +":" + second
}

filter.html文件

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p>传入时间搓可获取时间格式</p>
<span>{{ 1568078584726 | getDate}}</span>
</body>
</html>

浏览器显示结果

最新文章

  1. 9.1.2 asp.net core 自动生成组合查询
  2. github page 和 hexo 搭建在线博客
  3. Java HashMap、LinkedHashMap
  4. Css:背景色透明,内容不透明之终极方法!兼容所有浏览器
  5. HDU 2066 一个人的旅行【Dijkstra 】
  6. MediaPlayer简单使用,绑定surfaceView实现播放视频的功能
  7. Boost环境配置及遇到的问题解决方案
  8. Replace - with an en dash character (–, –) ?
  9. hibernate查询出的数据和数据库不一致
  10. FBO
  11. 对ios、android开发程序员的14条忠告
  12. 强大的Resharp插件(转)
  13. 旧调重弹Hibernate与Ibatis区别——深入架构设计
  14. python接口测试实例--数据驱动(程序与数据分离)
  15. 字符串类型 str--&gt;转义符--&gt;字符串格式化--&gt;占位符--&gt;综合案例
  16. CSS实现禁止文字选中
  17. 李洪强iOS经典面试题
  18. 【译】MVC3 20个秘方-(15)使用CAPTCHA去防止恶意软件自动提交评论(防灌水)
  19. freeswitch自定义模块的wiki地址
  20. LoadRunner 检查点函数总结

热门文章

  1. linux-head、tail、sort、uniq、pstree、ps
  2. 20191031-4 beta week 1/2 Scrum立会报告+燃尽图 02
  3. 洛谷P1720 月落乌啼算钱 题解 斐波那契数列/特征方程求解
  4. SpringBootTest 测试工具
  5. SQL练习题(一)
  6. 基于Antd框架的通信与交互
  7. Serv_U FTP服务端使用教程
  8. Java Calendar类(java.util包)
  9. Java控制台五子棋(纯算法)
  10. CS0656 缺少编译器要求的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”