代码拉取完成,页面将自动刷新
const fse = require("fs-extra");
const path = require("path");
const _ = require("lodash");
class AppBootHook {
constructor(app) {
this.app = app;
}
configWillLoad() {
// 此时 config 文件已经被读取并合并,但是还并未生效
// 这是应用层修改配置的最后时机
// 注意:此函数只支持同步调用
// 例如:参数中的密码是加密的,在此处进行解密
// this.app.config.mysql.password = decrypt(this.app.config.mysql.password);
// 例如:插入一个中间件到框架的 coreMiddleware 之间
// const statusIdx = this.app.config.coreMiddleware.indexOf('status');
// this.app.config.coreMiddleware.splice(statusIdx + 1, 0, 'limit');
const { database, port, redis_db } = fse.readJsonSync(path.join(process.cwd(), "database.json"));
this.app.config.sequelize.database = database;
this.app.config.cluster.listen.port = port;
this.app.config.redis.client.db = redis_db;
}
async didLoad() {
const ctx = await this.app.createAnonymousContext();
// const serverIp = await ctx.helper.getIpAddress();
// this.app.BASE_URL = `http://${serverIp}:${this.app.config.cluster.listen.port}`;
// console.oldlog = console.log;
// function log(){
// process.stdout.write(`[${ctx.helper.formatTime(Math.floor(Date.now()/1000))}] `);
// console.oldlog.apply(console, arguments);
// }
// console.log = log;
function log() {
ctx.logger.warn("---console---", ...arguments);
}
console.log = log;
}
async willReady() {
// 所有的插件都已启动完毕,但是应用整体还未 ready
// 可以做一些数据初始化等操作,这些操作成功才会启动应用
// 例如:从数据库加载数据到内存缓存
// this.app.cacheData = await this.app.model.query(QUERY_CACHE_SQL);
}
async didReady() {
// 应用已经启动完毕
console.log("当前 监听 端口:", this.app.config.cluster.listen.port);
console.log("当前 redis db:", this.app.config.redis.client.db);
console.log("当前 mysql 数据库:", this.app.config.sequelize.database);
}
async serverDidReady() {
// console.log("app serverDidReady:::::::::::::::")
// const ctx = await this.app.createAnonymousContext();
try {
this.app.server.timeout = 0;
this.app.server.keepAliveTimeout = 0;
} catch (e) {}
// 发送到所有worker
this.app.messenger.on("sync_setting", async ({ name, data }) => {
console.log("同步所有线程配置sync_setting", JSON.stringify(data));
if (name !== "egg") {
if (!this.app.config[name]) this.app.config[name] = {};
for (const key in data) {
this.app.config[name][key] = data[key];
}
}
});
}
}
module.exports = AppBootHook;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。