koa --- 扩展hbs方法

moment

  • 是一款常用的处理时间的库
  • 传入 1999-03-01T16:00:00.000Z YYYY/MM/DD
  • 输出 1999/03/02
const moment = require('moment');const myDatePattern = (date, pattern) =>{return moment(date).format(pattern)
} 

给扩展hbs功能.

  • 放在 utils/helper.js 下方便管理
const hbs = require('koa-hbs');
const moment = require('moment');hbs.registerHelper("date", (date, pattern) => {try {return moment(date).format(pattern);} catch (err) {return ""}
});
  • 说明:
  1. hbs.registerHelper(param1, cb): 第一个参数是标识符
  2. 第二个参数是一个回调函数,当触发标记时,所进行的事件处理

在koa中hbs使用

const hbs = require('koa-hbs');
const helpers = require('./ustils/helpers');  // 一定要有这一行,否则调用{{date }}时,找不到app.use(hbs.middleware({viewPath: __dirname + '/views',defaultLayout: 'layout',partialsPath: __dirname + '/views/partials',disableCache: true
}))

使用扩展date

  • 数据格式如下:
users:[{username: "tom", age: 20, birth: new Date(1999, 2, 2)},{ username: "jerry", age: 21, birth: new Date(1999, 3, 2) }
]
  • 调用如下:
<ul>{{#each users}}<li>{{username}} - {{age}} - {{date birth 'YYYY/MM/DD' }} </li>{{/each}} 
</ul>

在这里插入图片描述

  • 总结:
  1. 由于先使用,hbs.registerHelper,方法注册了一个名字为date的事件监听器,当遇到{{date birth 'YYYY/MM/DD'}}时,会将根据事件监听器找到date的事件处理器,即回调函数,然后将 birth 作为参数1 传入, 'YYYY/MM/DD’作为参数2传入.最后最为一个整体返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go系列 锁的初识

Go基础之锁的初识 当我们的程序就一个线程的时候是不需要用到锁的&#xff0c;但是通常我们实际的代码不会是单个线程的&#xff0c;所有这个时候就需要用到锁了&#xff0c;那么关于锁的使用场景主要涉及到哪些呢&#xff1f; 当我们多个线程在读相同的数据的时候则是需要加锁…

Java 试题六

Java 试题六 1、Collection 和 Collections的区别 答&#xff1a;Collection是集合类的上级接口&#xff0c;继承与他的接口主要有Set 和List。Collections是针对集合类的一个帮助类&#xff0c;他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 2、Set里…

node --- 实现session认证.

跨域认证的问题 互联网服务离不开用户认证.一般流程如下: 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#xff0c;在当前对话&#xff08;session&#xff09;里面保存相关数据&#xff0c;比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id&…

回信,我的好朋友王一涵

好了&#xff0c;不拖了&#xff0c;沏一杯咖啡&#xff0c;把信写完。因为再拿好吃的贿赂你&#xff0c;贿赂不起了—— 一个胖子可以吃穷我的。 王一涵凹&#xff0c;不得了不得了。微胖肉质女生&#xff0c;关于体重我就不提了&#xff0c;只有我知道嘿嘿嘿&#xff0c;在我…

编写基于Property-based的单元测试

编写基于Property-based的单元测试 作为一个开发者&#xff0c;你可能认为你的职责就是编写代码从而完成需求。我不敢苟同&#xff0c;开发者的工作是通过软件来解决现实需求&#xff0c;编写代码只是软件开发的其中一个方面&#xff0c;编写可靠的软件和产出有价值的代码更加重…

树链剖分+线段树 单点修改 区间求和 模板

马上要去西安打邀请赛了&#xff0c;存下板子 首先是vector存图的&#xff1a; #include<bits/stdc.h> using namespace std; #define ll long long #define lson l,m,rt<<1 #define rson m1,r,rt<<1|1 #define mid int m (l r) >> 1 const int M …

koa --- seesion实现登录鉴权

koa vue session 实现一个简单的登录逻辑 /login component/login-session.html <!DOCTYPE html><head><script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src"https://unpkg.com/axios/dist/axios.…

BZOJ2216: [Poi2011]Lightning Conductor

第一道此类的题&#xff0c;所以这是一篇假的博客&#xff0c;定理不会证明不理性 也不一定对 我是从这篇博客看的 很显然是让你求 p[i] max{a[j] sqrt(i - j)} - a[i] 就是 max{a[j] sqrt(|i - j|)} 这是一个 1D/1D 动态规划 考虑对于绝对值的情况不好做&#xff0c;那就…

HNOI2018游记

HNOI2018游记 day 0 上午稍微写了下题保持手感,然后看了一下套路,感觉不会的还是不会. 下午去划水在湖面上被吹成傻逼... 感觉没有联赛前那么紧张了,应该是联赛考挂了的原因吧.. day1 早上大概7:40就到了考场,和同学聊了一会儿天,看了看配置就进去了. 进去之后敲配置没有一遍对…

Java 试题七

Java 试题七 1、java中有几种类型的流&#xff1f;JDK为每种类型的流提供了一些抽象类以供继承&#xff0c;请说出他们分别是哪些类&#xff1f; 答&#xff1a;字节流&#xff0c;字符流。 字节流继承于InputStream、OutputStream&#xff0c; 字符流继承于Reader、Writer…

flume快速入门及应用

 Flume 简介 Flume 的安装与配置 Fumne 部署   Flume 是 Cloudera 提供的一个高可用、 高可靠、 分布式的海量日志采集、 聚合和传输的系统。 Flume 支持定制各类数据源如 Avro、 Thrift、 Spooling 等。 同时 Flume提供对数据的简单处理&#xff0c; 并将数据处理结果…

koa --- jwt实现最简单的Token认证

HTML 有如下html: 先看代码后挑重点来说明: <!DOCTYPE html><head><script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src"https://unpkg.com/axios/dist/axios.min.js"></script></…

python基础之常用的高阶函数

前言 高阶函数指的是能接收函数作为参数的函数或类&#xff1b;python中有一些内置的高阶函数&#xff0c;在某些场合使用可以提高代码的效率&#xff0e; map() map函数可以把一个迭代对象转换成另一个可迭代对象&#xff0c;不过在python3中&#xff0c;结果都是一个map对象&…

Java 试题八

Java 试题八 1、java中有几种方法可以实现一个线程&#xff1f;用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用&#xff1f; 答&#xff1a;有两种实现方法&#xff0c;分别是继承Thread类与实现Runnable接口&#xff1b;用synchronized关键字修饰同步方法…

bzoj2957 奥妙重重的线段树

https://www.lydsy.com/JudgeOnline/problem.php?id2957 线段树的query和update竟然还可以结合起来用&#xff01; 题意&#xff1a;小A的楼房外有一大片施工工地&#xff0c;工地上有N栋待建的楼房。每天&#xff0c;这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗…

koa --- 使用Github OAuth登录

准备 登录github选择右上角的setting Developer settings -> OAuth Apps -> Register a new application 填入基本信息 点击绿色的按钮,可以看见 client_id 和 client secret 理清思路: 开始时,一个登录的连接,点击连接.后台监听登录(/login)路由,然后重定向到github…

[数据结构] - ArrayList探究

一 概述 ArrayList可以理解为动态数组&#xff0c;与java的数组相比&#xff0c;它的容量能动态曾长&#xff0c;ArrayList是List接口的可变数组的实现&#xff0c;允许包括null值在内的所有元素。除了实现List接口外&#xff0c;此类还提供一些方法来操作内部用来存储列表的数…

10.10考试题

voteplus 【问题描述】 R 君博客上有⼀个投票板块&#xff0c;⼤家可以使⽤投票的⽅式来表达⾃⼰对某些问题的赞成或反对的意见。 投票结果是公开的&#xff0c;但是 R 君会把这个结果化成⼀个最简分数&#xff0c;如 1:2,4:3。 注意到同⼀个最简分数可能代表了不同的总⼈数&am…

koa --- 跨域,解析POST参数、路由配置

目标 将开发中经常遇见的问题写在这里方便查询. 使用Koa创建一个简单的服务器 const Koa require("koa"); const app new Koa(); app.listen(3000, () >{console.log("[server] Server is running at http://localhost:3000") })使用koa2-cors解决…

mysql数据库常用操作

目前最流行的数据库&#xff1a; oracle、mysql、sqlserver、db2、sqline --&#xff1a;单行注释 #&#xff1a;也是单行注释 /* 注释内容*/&#xff1a;多行注释 mysql -uroot -p密码&#xff1a;登录mysql service mysqld restart重启mysql /etc/my.cnfmysql的配置文件 /var…