configuration.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 { VerifyTokenInit } from './decorator/verifyToken.decorator';
  9. import { CheckPermissionCodeInit } from './decorator/checkPermissionCode';
  10. import * as swagger from '@midwayjs/swagger';
  11. import * as redis from '@midwayjs/redis';
  12. import { CheckOnePointLoginMiddleware } from './middleware/checkOnePointLogin.middleware';
  13. import * as i18n from '@midwayjs/i18n';
  14. import { SetLocaleToCtxMiddleware } from './middleware/setLocaleToCtx.middleware';
  15. import { DataRecordInit } from './decorator/dataRecord';
  16. import * as bull from '@midwayjs/bull';
  17. import { ElasticsearchService } from './service/elasticsearch';
  18. @Configuration({
  19. imports: [
  20. koa,
  21. validate,
  22. FreeFrame,
  23. jwt,
  24. redis,
  25. i18n,
  26. bull,
  27. {
  28. component: info,
  29. enabledEnvironment: ['local'],
  30. },
  31. {
  32. component: swagger,
  33. enabledEnvironment: ['local'],
  34. },
  35. ],
  36. importConfigs: [join(__dirname, './config')],
  37. })
  38. export class MainConfiguration {
  39. @App('koa')
  40. app: koa.Application;
  41. @Inject()
  42. decoratorService: MidwayDecoratorService;
  43. async onReady() {
  44. this.app.getMiddleware().insertFirst(SetLocaleToCtxMiddleware)
  45. this.app.getMiddleware().insertAfter(CheckOnePointLoginMiddleware, 'checkToken');
  46. // 注解
  47. VerifyTokenInit(this.decoratorService);
  48. CheckPermissionCodeInit(this.decoratorService);
  49. DataRecordInit(this.decoratorService)
  50. }
  51. // 应用服务已启动后执行
  52. async onServerReady?(container: IMidwayContainer, app: IMidwayApplication) {
  53. // 初始化es
  54. const esService = await container.getAsync(ElasticsearchService);
  55. await esService.preparMapping();
  56. }
  57. }