configuration.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { Configuration, App, Inject, MidwayDecoratorService, IMidwayContainer, IMidwayApplication } from '@midwayjs/core';
  2. import * as koa from '@midwayjs/koa';
  3. import * as validate from '@midwayjs/validate';
  4. import * as info from '@midwayjs/info';
  5. import { join } from 'path';
  6. import * as FreeFrame from 'free-midway-component';
  7. import * as jwt from '@midwayjs/jwt';
  8. import * as ws from '@midwayjs/ws';
  9. import * as swagger from '@midwayjs/swagger';
  10. import * as redis from '@midwayjs/redis';
  11. import { newsQueryMiddleware } from './middleware/newsQuery.middleware';
  12. import * as i18n from '@midwayjs/i18n';
  13. import { SetLocaleToCtxMiddleware } from './middleware/setLocaleToCtx.middleware';
  14. import * as bull from '@midwayjs/bull';
  15. import { ElasticsearchService } from './service/elasticsearch';
  16. import { DataRecordMiddleware } from './middleware/dataRecord.middleware';
  17. import { DBService } from './service/db.service';
  18. import { ReportMiddleware } from './middleware/report.middleware';
  19. @Configuration({
  20. imports: [
  21. koa,
  22. validate,
  23. FreeFrame,
  24. jwt,
  25. ws,
  26. redis,
  27. i18n,
  28. bull,
  29. {
  30. component: info,
  31. enabledEnvironment: ['local'],
  32. },
  33. {
  34. component: swagger,
  35. enabledEnvironment: ['local'],
  36. },
  37. ],
  38. importConfigs: [join(__dirname, './config')],
  39. })
  40. export class MainConfiguration {
  41. @App('koa')
  42. app: koa.Application;
  43. @Inject()
  44. decoratorService: MidwayDecoratorService;
  45. async onReady() {
  46. this.app.getMiddleware().insertFirst(SetLocaleToCtxMiddleware)
  47. this.app.getMiddleware().insertAfter(DataRecordMiddleware, 'SetLocaleToCtxMiddleware');
  48. this.app.getMiddleware().insertAfter(newsQueryMiddleware, 'newsQuery');
  49. this.app.getMiddleware().insertFirst(ReportMiddleware)
  50. }
  51. // 应用服务已启动后执行
  52. async onServerReady?(container: IMidwayContainer, app: IMidwayApplication) {
  53. // 初始化es
  54. const esService = await container.getAsync(ElasticsearchService);
  55. // await esService.preparMapping();
  56. // await container.getAsync(DBService);
  57. }
  58. }