-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.ts
50 lines (38 loc) · 1.27 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
// polyfills
import 'zone.js/dist/zone-node';
import 'reflect-metadata';
// angular
import { enableProdMode } from '@angular/core';
// libs
import { join } from 'path';
import * as express from 'express';
import * as compression from 'compression';
import { ngExpressEngine } from '@nguniversal/express-engine';
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
enableProdMode();
// tslint:disable-next-line
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./server/main');
const server = express();
server.use(compression());
const PORT = process.env.PORT || 4000;
const DIST_FOLDER = join(process.cwd(), 'dist');
server.engine('html', ngExpressEngine({
bootstrap: AppServerModuleNgFactory,
providers: [
provideModuleMap(LAZY_MODULE_MAP)
]
}));
server.set('view engine', 'html');
server.set('views', join(DIST_FOLDER, 'browser'));
server.use('/', express.static(join(DIST_FOLDER, 'browser'), {index: false}));
server.get('*', (req, res) => {
res.render(join(DIST_FOLDER, 'browser', 'index.html'), {
req,
res
});
});
server.set('port', PORT);
server.listen(server.get('port'), () => {
// tslint:disable-next-line
console.log(`Express server listening on PORT:${PORT}`);
});