Server.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { Configuration, Inject } from '@tsed/di';
  2. import { PlatformApplication } from '@tsed/common';
  3. import '@tsed/platform-express'; // /!\ keep this import
  4. import bodyParser from 'body-parser';
  5. import compress from 'compression';
  6. import cookieParser from 'cookie-parser';
  7. import methodOverride from 'method-override';
  8. import '@tsed/swagger';
  9. import '@tsed/typeorm';
  10. import { ConnectionOptions } from 'typeorm';
  11. export const rootDir = __dirname;
  12. const connectionOptions: ConnectionOptions = {
  13. type: process.env.TYPEORM_CONNECTION,
  14. database: process.env.TYPEORM_DATABASE,
  15. } as ConnectionOptions;
  16. @Configuration({
  17. rootDir,
  18. acceptMimes: ['application/json'],
  19. httpPort: process.env.PORT || 8080,
  20. httpsPort: false, // CHANGE
  21. mount: {
  22. '/': [
  23. `${rootDir}/controllers/*.ts`,
  24. `${rootDir}/middlewares/*.ts`,
  25. ],
  26. },
  27. typeorm: [
  28. {
  29. ...connectionOptions,
  30. entities: [
  31. `${__dirname}/entity/*{.ts,.js}`,
  32. ],
  33. migrations: [
  34. `${__dirname}/migrations/*{.ts,.js}`,
  35. ],
  36. subscribers: [
  37. `${__dirname}/subscriber/*{.ts,.js}`,
  38. ],
  39. } as ConnectionOptions,
  40. ],
  41. swagger: [
  42. {
  43. path: '/docs',
  44. specVersion: '3.0.1',
  45. },
  46. ],
  47. exclude: [
  48. '**/*.spec.ts',
  49. ],
  50. })
  51. export class Server {
  52. @Inject()
  53. app: PlatformApplication;
  54. @Configuration()
  55. settings: Configuration;
  56. $beforeRoutesInit(): void {
  57. this.app
  58. .use(cookieParser())
  59. .use(compress({}))
  60. .use(methodOverride())
  61. .use(bodyParser.json())
  62. .use(bodyParser.urlencoded({
  63. extended: true,
  64. }));
  65. }
  66. }