[Monitor]: Add on server REQUEST and RESPONSE providers

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor@57445 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2019-10-22 13:15:49 +00:00
parent 7eadecd2e0
commit 3931a85628
1 changed files with 21 additions and 10 deletions

View File

@ -26,6 +26,7 @@ const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/server/mai
import {ngExpressEngine, RenderOptions} from '@nguniversal/express-engine';
// Import module map for lazy loading
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
import {REQUEST, RESPONSE} from "@nguniversal/express-engine/tokens";
// Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
// app.engine('html', ngExpressEngine({
@ -37,17 +38,27 @@ import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
// }));
// be able to get request and get domain from there
app.engine('html', (_, options: RenderOptions, callback) => {
let engine = ngExpressEngine({
bootstrap: AppServerModuleNgFactory,
providers: [
{ provide: 'request', useFactory: () => options.req, deps: [] },
provideModuleMap(LAZY_MODULE_MAP)
]
});
engine(_, options, callback);
});
app.engine('html', (_, options: any, callback) => {
const opts = {
document: template,
url: options.req.url,
extraProviders: [
provideModuleMap(LAZY_MODULE_MAP),
{
provide: REQUEST,
useValue: options.req
},
{
provide: RESPONSE,
useValue: options.req.res,
},
]
};
renderModuleFactory(AppServerModuleNgFactory, opts)
.then(html => callback(null, html)
);
});
app.set('view engine', 'html');
app.set('views', join(DIST_FOLDER, 'browser'));