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