端口指定
方法1系馆,在配置文件config.*.js里添加
config.cluster = {
listen: {
path: '',
port: 7002,
hostname: '0.0.0.0',
}
};
方法2
npm run start -- --port=7002
日志輸出
ctx.logger.info()輸出的信息到項(xiàng)目名-web.log
app.logger.info()輸出的日志到項(xiàng)目名-web.log
區(qū)別在于ctx.logger.info()會(huì)順帶信息輸出所在的文件送漠,app.logger.info()不會(huì)
console.log相當(dāng)于app.logger.info()
在開(kāi)發(fā)階段會(huì)輸出到控制臺(tái)。在線上階段不會(huì)由蘑。
日志輸出文件控制
指定配置文件
指定默認(rèn)配置文件config.default.js啟動(dòng)
npm run start -- --env=default
生命周期
- 配置文件即將加載闽寡,這是最后動(dòng)態(tài)修改配置的時(shí)機(jī)(configWillLoad)
- 配置文件加載完成(configDidLoad)
- 文件加載完成(didLoad)
- 插件啟動(dòng)完畢(willReady)
- worker 準(zhǔn)備就緒(didReady,大多數(shù)業(yè)務(wù))
- 應(yīng)用啟動(dòng)完成(serverDidReady)
- 應(yīng)用即將關(guān)閉(beforeClose)
函數(shù)形式(不推薦)
// app.js
module.exports = app => {
app.beforeStart(async () => {
// 此處是你原來(lái)的邏輯代碼
});
};
類(lèi)形式(推薦)
// app.js
class AppBootHook {
constructor(app) {
this.app = app;
}
async didLoad() {
// 請(qǐng)將你的插件項(xiàng)目中 app.beforeStart 中的代碼置于此處尼酿。
}
async willReady() {
// 請(qǐng)將你的應(yīng)用項(xiàng)目中 app.beforeStart 中的代碼置于此處爷狈。
}
}
module.exports = AppBootHook;
接口開(kāi)發(fā)
-
app/router.js
里面確定接口地址 -
app/controller/
里面獲取請(qǐng)求數(shù)據(jù) -
app/controller/
調(diào)用app/service
里面的方法處理請(qǐng)求,返回響應(yīng) -
ctx.runInBackground
方法用來(lái)執(zhí)行后臺(tái)任務(wù)
中間件使用
新建
app/middleware/中間件.js
目錄裳擎。中間件.js的內(nèi)容
/**
* options 是中間件參數(shù)涎永,框架會(huì)將 app.config[${middlewareName}] 傳遞進(jìn)來(lái)。
* app是當(dāng)前應(yīng)用 Application 的實(shí)例。
*/
module.exports = (options, app) => {
//返回一個(gè)異步的方法來(lái)執(zhí)行中間件代碼
return async (ctx,next)=>{
// 執(zhí)行下一個(gè)中間件方法
await next();
}
};
-
在config.環(huán)境.js
配置中間件
'use strict';
module.exports = appInfo => {
const config = exports = {};
// 增加配置中間件
config.middleware = ['中間件'];
//給printdate中間件傳入的參數(shù)
config.中間件={
參數(shù)key:'參數(shù)value'
}
return config;
};
定時(shí)器開(kāi)發(fā)
app/schedule
里面建立定時(shí)任務(wù)處理方法羡微。
app/app.js
在beforeStart階段啟動(dòng)定時(shí)任務(wù)await app.runSchedule('定時(shí)任務(wù)');