| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import 'zone.js/dist/zone-node';
- import 'reflect-metadata';
-
- import { ngExpressEngine } from '@nguniversal/express-engine';
- import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
- import { resolve } from 'path';
- import { enableProdMode } from '@angular/core';
- const domino = require('domino');
- const win = domino.createWindow('');
-
- global['window'] = win;
- global['document'] = win.document;
- global['alert'] = console.log
- global['XMLHttpRequest'] = require('xmlhttprequest').XMLHttpRequest;
-
- export async function attachExpress(app, staticDir = "./dist", loggerService = console) {
- const STATIC_FOLDER = resolve(process.cwd(), staticDir);
-
- enableProdMode();
-
- const bundle = require(staticDir + '/server/main');
-
- const ServerApiService = bundle.ServerApiService
- const serviceObj = new ServerApiService(loggerService)
- await serviceObj.initialize()
-
- app.set('view engine', 'html');
- app.engine(
- 'html',
- ngExpressEngine({
- bootstrap: bundle.AppServerModuleNgFactory,
- providers: [
- provideModuleMap(bundle.LAZY_MODULE_MAP),
- {
- provide: bundle.LoggerService,
- deps: [],
- useValue: loggerService
- },
- {
- provide: bundle.IApiService,
- deps: [],
- useValue: serviceObj,
- }
- ]
- })
- );
-
- app.get('*', (req, res) => {
- //console.log('*', req.path);
- res.render(resolve(STATIC_FOLDER, 'browser/index'), { req, res })
- });
- }
|