美文网首页
从 Pomelo 源码中整理出知识点

从 Pomelo 源码中整理出知识点

作者: tumobi | 来源:发表于2018-07-25 00:25 被阅读68次

    最近更新时间:2018-07-24
    原文链接:http://www.childsay.com/pomelo-point.html

    1.获取 pomelo 运行的环境

    源码中设置运行环境的位置 lib/util/appUtil.js

    // 193 行
    var setupEnv = function(app, args) {
      app.set(Constants.RESERVED.ENV, args.env || process.env.NODE_ENV || Constants.RESERVED.ENV_DEV, true);
    };
    

    其中 Constants.RESERVED.ENV 的值为 env,Constants.RESERVED.ENV_DEV 的值为 development。
    使用 pomelo start 方式启动时如果没有传入 --env 参数,则会先检查 process.env.NODE_ENV 环境变量是否设置,如果没有则默认为 development。如果是通过 pomelo start --env production 方式启动则是 production。

    获取运行环境的方法为:

    app.get('env')
    

    2.获取项目的根目录

    app.get('base')
    // 或
    app.getBase()
    

    即 app.js 所在的目录

    3.监听所有 server 启动完成后事件

    如果需要在所有服务器启动完成后,再执行某些操作,可以通过监听 start_all 事件来实现。

    // app.js
    app.event.on('start_all', () => {
      console.log(`所有服务启动完成了`)
    })
    

    app.event 其它事件

    • bind_session
    • close_session
    • add_servers
    • remove_servers
    • replace_servers
    • add_crons
    • remove_crons
    • start_all
    • start_server

    4.获取客户端 ip 和端口

    const ip = session.__session__.__socket__.remoteAddress.ip
    const port = session.__session__.__socket__.remoteAddress.port
    

    相关文章

      网友评论

          本文标题:从 Pomelo 源码中整理出知识点

          本文链接:https://www.haomeiwen.com/subject/iffymftx.html