zoukankan      html  css  js  c++  java
  • 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());

    .

  • 相关阅读:
    知识管理系统
    小强地狱(Bug Hell)——优先级和缺陷修改的平衡
    搜索引擎中用到的一些拆词方式解析
    TPLINK TLWR841N 路由变无线交换机设置
    .iso与.mdx(mds)格式的区别
    关于“小米盒子”等的被喷
    刚开通了博客园,以后就在这里安家吧
    温故而知新,算法在我心
    silverlight应用图片新闻展示效果
    jquery应用实现博客个性主页布局拖拽功能
  • 原文地址:https://www.cnblogs.com/crazycode2/p/12436397.html
Copyright © 2011-2022 走看看