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

    .

  • 相关阅读:
    如何编辑SDE数据(转)
    常用sql语句
    JavaScript 实现地图打印
    什么是3G通信?
    一种客户端得到后台某个值的方法
    如何利用C#创建和调用DLL(转)
    C#中如何调用动态链接库DLL(转)
    一个ADF Javascript 添加鼠标移动事件的例子
    ArcGIS Server网站发布后地图显示空白的原因
    硬盘录像机监听按钮不起作用
  • 原文地址:https://www.cnblogs.com/crazycode2/p/12436397.html
Copyright © 2011-2022 走看看