node使用art-template的过滤器
2024-09-06 18:39:59
引言
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>
浏览器显示结果
最新文章
- 9.1.2 asp.net core 自动生成组合查询
- github page 和 hexo 搭建在线博客
- Java HashMap、LinkedHashMap
- Css:背景色透明,内容不透明之终极方法!兼容所有浏览器
- HDU 2066 一个人的旅行【Dijkstra 】
- MediaPlayer简单使用,绑定surfaceView实现播放视频的功能
- Boost环境配置及遇到的问题解决方案
- Replace - with an en dash character (–, –) ?
- hibernate查询出的数据和数据库不一致
- FBO
- 对ios、android开发程序员的14条忠告
- 强大的Resharp插件(转)
- 旧调重弹Hibernate与Ibatis区别——深入架构设计
- python接口测试实例--数据驱动(程序与数据分离)
- 字符串类型 str-->;转义符-->;字符串格式化-->;占位符-->;综合案例
- CSS实现禁止文字选中
- 李洪强iOS经典面试题
- 【译】MVC3 20个秘方-(15)使用CAPTCHA去防止恶意软件自动提交评论(防灌水)
- freeswitch自定义模块的wiki地址
- LoadRunner 检查点函数总结
热门文章
- linux-head、tail、sort、uniq、pstree、ps
- 20191031-4 beta week 1/2 Scrum立会报告+燃尽图 02
- 洛谷P1720 月落乌啼算钱 题解 斐波那契数列/特征方程求解
- SpringBootTest 测试工具
- SQL练习题(一)
- 基于Antd框架的通信与交互
- Serv_U FTP服务端使用教程
- Java Calendar类(java.util包)
- Java控制台五子棋(纯算法)
- CS0656	缺少编译器要求的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”