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());
.