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