美文网首页
eggjs框架使用大略

eggjs框架使用大略

作者: 草珊瑚_6557 | 来源:发表于2019-05-10 18:58 被阅读0次

端口指定

方法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;

接口开发

  1. app/router.js里面确定接口地址
  2. app/controller/里面获取请求数据
  3. app/controller/调用app/service里面的方法处理请求,返回响应
  4. ctx.runInBackground方法用来执行后台任务
中间件使用
  1. 新建app/middleware/中间件.js目录。

  2. 中间件.js的内容

/**
* options 是中间件参数,框架会将 app.config[${middlewareName}] 传递进来。
* app是当前应用 Application 的实例。
*/
module.exports = (options, app) => {
  
    //返回一个异步的方法来执行中间件代码
    return async (ctx,next)=>{
            // 执行下一个中间件方法
            await next();
    }
};
  1. 在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('定时任务');

相关文章

网友评论

      本文标题:eggjs框架使用大略

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