diff --git a/server.ts b/server.ts index fd35820..852d757 100644 --- a/server.ts +++ b/server.ts @@ -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'));