-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.ts
72 lines (53 loc) · 2.08 KB
/
server.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import * as config from 'config';
import { ExpressConfig } from './middleware/server-config/Express';
import http = require('http');
import { logger } from './middleware/common/logging';
import './service-layer/controllers/AuthorizationController';
import './service-layer/controllers/UsersController';
import './service-layer/controllers/CommentsController';
import './service-layer/controllers/BooksController';
import './service-layer/controllers/ProfileController';
import {RegisterRoutes} from './middleware/server-config/routes';
import * as methodOverride from 'method-override';
import * as bodyParser from 'body-parser';
import * as cors from 'cors';
import * as cookieParser from 'cookie-parser';
import * as health from 'express-ping';
import './types';
let server:any;
var express = new ExpressConfig();
const port = config.get('express.port');
const debugPort = config.get('express.debug');
express.app.use('/docs', express.static(__dirname + '/swagger-ui'));
express.app.use('/swagger.json', (req, res) => {
res.sendfile('./dist/swagger.json');
});
express.app.use(cors());
express.app.use(bodyParser.urlencoded({ extended: true }));
express.app.use(bodyParser.json());
express.app.use(cookieParser());
express.app.use(methodOverride());
express.app.use(health.ping());
RegisterRoutes(express.app);
function clientErrorHandler (err, req, res, next) {
if (err.hasOwnProperty('thrown') && err.thrown) {
res.status(err.status).send({ error: err.message})
} else {
next(err)
}
}
express.app.use(clientErrorHandler);
this.server = express.app.listen(port, () => {
const expressHost = this.server.address();
const expressPort = this.server.address().port;
logger.info(`
------------
Server Started!
Express: http://${expressHost}:${expressPort}
Debugger: http:/${expressHost}:${expressPort}/?ws=${expressHost}:${expressPort}&port=${debugPort}
Health: http://${expressHost}:${expressPort}/ping
Swagger Docs: http://${expressHost}:${expressPort}/docs
Swagger Spec: http://${expressHost}:${expressPort}/api-docs
------------
`);
});