Egg.js 通过 extend 实现 日期格式化

Posted 每天都要进步一点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Egg.js 通过 extend 实现 日期格式化相关的知识,希望对你有一定的参考价值。

1.创建 helper 扩展方法

app/extend/helper.js

/**
 * app/extend/helper.js
 * 扩展里面引入第三方模块
 * https://www.npmjs.com/package/silly-datetime
 * 1、yarn add silly-datetime
 * 2、var sd = require(‘silly-datetime‘);
 * 3、sd.format(new Date(), ‘YYYY-MM-DD HH:mm‘);
 */

let sd = require(‘silly-datetime‘);

module.exports = {
  formatTime(param) {
    // this 是 helper 对象,在其中可以调用其他 helper 方法
    // this.ctx => context 对象
    // this.app => application 对象

    // 格式化日期 param -- 时间戳
    return sd.format(new Date(param*1000), ‘YYYY-MM-DD HH:mm‘);
  },
  getHelperData() {
    return ‘我是helper里面的数据‘;
  }
};

2.在 controller 中调用

// 调用extend里面扩展的helper的方法
console.log(this.ctx.helper.getHelperData());

3.在 view 中调用

<span>---<%=helper.formatTime(list[i].dateline)%></span>

4.其他扩展

app/extend/application.js

/**
 * app/extend/application.js
 * 外部可以通过 this.app.foo() 调用
 */
module.exports = {
  foo(param) {
    // this 就是 app 对象,在其中可以调用 app 上的其他方法,或访问属性

    return this.config.api;
  },
};

app/extend/context.js

/**
 * app/extend/context.js
 * 外部可以通过 this.ctx.getHost() 调用
 */
module.exports = {
  getHost(param) {
    // this 就是 ctx 对象,在其中可以调用 ctx 上的其他方法,或访问属性

    return this.request.host;
  },
};

app/extend/request.js

// app/extend/request.js
module.exports = {
  foo() {
    return this.header.host;
  },
};

5.调用

// 调用extend里面扩展的application
console.log(this.app.foo());

// 调用extend里面扩展的ctx
console.log(this.ctx.getHost());

// 调用extend里面扩展的helper的方法
console.log(this.ctx.helper.getHelperData());

// 调用extend里面扩展的request的方法
console.log(this.ctx.request.foo());

.

以上是关于Egg.js 通过 extend 实现 日期格式化的主要内容,如果未能解决你的问题,请参考以下文章

javascript日期格式化的实现,支持n多种格式化日期类型

egg.js集成Socket.io实现推送和即时通信

Egg.js 实现一维的对象数组转化为树形数组

Egg.js 学习笔记01

使用egg.js和egg-sequelize连接mysql

Egg.js 异常处理中间件jwt,实现接口权限控制