端口指定
方法1,在配置文件config.*.js里添加
config.cluster = {
listen: {
path: '',
port: 7002,
hostname: '0.0.0.0',
}
};
方法2
npm run start -- --port=7002
日志输出
ctx.logger.info()输出的信息到项目名-web.log
app.logger.info()输出的日志到项目名-web.log
区别在于ctx.logger.info()会顺带信息输出所在的文件,app.logger.info()不会
console.log相当于app.logger.info()
在开发阶段会输出到控制台。在线上阶段不会。
日志输出文件控制
指定配置文件
指定默认配置文件config.default.js启动
npm run start -- --env=default
生命周期
- 配置文件即将加载,这是最后动态修改配置的时机(configWillLoad)
- 配置文件加载完成(configDidLoad)
- 文件加载完成(didLoad)
- 插件启动完毕(willReady)
- worker 准备就绪(didReady,大多数业务)
- 应用启动完成(serverDidReady)
- 应用即将关闭(beforeClose)
函数形式(不推荐)
// app.js
module.exports = app => {
app.beforeStart(async () => {
// 此处是你原来的逻辑代码
});
};
类形式(推荐)
// app.js
class AppBootHook {
constructor(app) {
this.app = app;
}
async didLoad() {
// 请将你的插件项目中 app.beforeStart 中的代码置于此处。
}
async willReady() {
// 请将你的应用项目中 app.beforeStart 中的代码置于此处。
}
}
module.exports = AppBootHook;
接口开发
-
app/router.js
里面确定接口地址 -
app/controller/
里面获取请求数据 -
app/controller/
调用app/service
里面的方法处理请求,返回响应 -
ctx.runInBackground
方法用来执行后台任务
中间件使用
-
新建
app/middleware/中间件.js
目录。 -
中间件.js的内容
/**
* options 是中间件参数,框架会将 app.config[${middlewareName}] 传递进来。
* app是当前应用 Application 的实例。
*/
module.exports = (options, app) => {
//返回一个异步的方法来执行中间件代码
return async (ctx,next)=>{
// 执行下一个中间件方法
await next();
}
};
-
在config.环境.js
配置中间件
'use strict';
module.exports = appInfo => {
const config = exports = {};
// 增加配置中间件
config.middleware = ['中间件'];
//给printdate中间件传入的参数
config.中间件={
参数key:'参数value'
}
return config;
};
定时器开发
app/schedule
里面建立定时任务处理方法。
app/app.js
在beforeStart阶段启动定时任务await app.runSchedule('定时任务');
网友评论