[Connect]: Add on server REQUEST and RESPONSE providers

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-connect-portal/trunk@57444 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
k.triantafyllou 2019-10-22 13:14:52 +00:00
parent 164e4fc127
commit 624cf9b11b
1 changed files with 22 additions and 9 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,15 +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');