引言

  • 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>

浏览器显示结果

node使用art-template的过滤器的更多相关文章

  1. art template前端模板引擎

    偶然看到后台有一段代码 采用的是art template的模板引擎 地址为 http://aui.github.io/artTemplate/ 这段代码很简洁 var html = template( ...

  2. 小白学习VUE第二课:环境搭建 VUE Node.js VSCode template模板

    环境搭建 VUE Node.js VSCode template模板: 首先安装node:http://www.runoob.com/nodejs/nodejs-install-setup.html ...

  3. art.template 循环里面分组。

    后台提供给我们一个数组,我们要用模版实现上面的格式输出怎么版呢? 下面就是解决方案: <h2>循环4个一组</h2> <script type="text/ht ...

  4. 利用art.template模仿VUE 一次渲染多个模版

    TypeScript代码 import template = require('art-template/lib/template-web'); interface TemplateBindConfi ...

  5. 利用art.template模仿VUE

    首先先看一下Typescript代码: import template = require('art-template/lib/template-web'); interface TemplateBi ...

  6. js 模板引擎 -Art Template

    一个例子涵盖所有: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

  7. Node.js:template

    ylbtech-Node.js: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech ...

  8. Django模板语言中的自定义方法filter过滤器实现web网页的瀑布流

    模板语言自定义方法介绍 自定义方法注意事项 Django中有simple_tag 和 filter 两种自定义方法,之前也提到过,需要注意的是 扩展目录名称必须是templatetags templa ...

  9. 前端学习 node 快速入门 系列 —— 报名系统 - [express]

    其他章节请看: 前端学习 node 快速入门 系列 报名系统 - [express] 最简单的报名系统: 只有两个页面 人员信息列表页:展示已报名的人员信息列表.里面有一个报名按钮,点击按钮则会跳转到 ...

  10. [置顶] ※数据结构※→☆非线性结构(tree)☆============树结点 链式存储结构(tree node list)(十四)

    结点: 包括一个数据元素及若干个指向其它子树的分支:例如,A,B,C,D等. 在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点. 在C语言 ...

随机推荐

  1. sleep()与wait()区别

    1.所在类不一样:sleep在Thread类里面,wait在Object里面. 2.sleep需要抓异常,wait则不用. 3.sleep没有释放锁,wait释放锁. 4.sleep设置了释放时间,w ...

  2. 20191121-3 Final阶段贡献分配规则

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10063 ”组长”组final阶段贡献分分配规则 组里五位成员分别有入团队 ...

  3. 20191031-4 beta week 1/2 Scrum立会报告+燃尽图 02

    此作业要求参见 https://edu.cnblogs.com/campus/nenu/2019fall/homework/9912 git地址:https://e.coding.net/Eustia ...

  4. $exLucas$学习笔记

    本来不打算写了的,,,但是感$jio$理解起来还是有点儿难度的来着,,,$so$还是瞎写点儿趴$QAQ$ $exLucas$主要有三步: 1)唯一分解$mod$并预处理$p^{k}$以内的阶乘 2)计 ...

  5. Theia APIs——命令和快捷键

    上一篇:使用Theia——创建语言支持 命令和快捷键 Theia可以通过多种不同的方式进行扩展.命令允许packages提供可以被其它包调用的唯一命令,还可以向这些命令添加快捷键和上下文,使得它们只能 ...

  6. 量化投资学习笔记07——python知识补漏

    看<量化投资:以python为工具>这本书,第一部分是python的基础知识.这一部分略读了,只看我还不知道或不熟的. 定义复数 x = complex(2, 5) #2+5j 也可以直接 ...

  7. Java中数组的使用

    1.声明数组 1.1声明一维数组 声明一维数组有下列两种格式: 数组的元素类型      数组名字[ ]; 数组的元素类型[ ]   数组名字 1.2声明二维数组 声明二维数组有下列两种格式: 数组的 ...

  8. js 极简获取表单 元素 !

    let s =[]; $.each($('#formSearch input'),(m,n)=>{s.push(n)}); //示例获取表单所有 input 下滑线分割的 name 集合.set ...

  9. JAVA高级架构师基础功:Spring中AOP的两种代理方式:动态代理和CGLIB详解

    在spring框架中使用了两种代理方式: 1.JDK自带的动态代理. 2.Spring框架自己提供的CGLIB的方式. 这两种也是Spring框架核心AOP的基础. 在详细讲解上述提到的动态代理和CG ...

  10. VirtualBox扩充磁盘&清空安装包

    1.virtual box 扩充磁盘空间 D:\VirtualBox\VBoxManage.exe modifyhd "E:\virtual box\daisyyun\daisyyun.vd ...