最近更新时间:2018-07-24

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