1
-
2
1
import 'zone.js/node' ;
3
2
4
3
import { APP_BASE_HREF } from '@angular/common' ;
5
- import { CommonEngine } from '@angular/ssr ' ;
4
+ import { ngExpressEngine } from '@nguniversal/express-engine ' ;
6
5
import * as express from 'express' ;
7
6
import { existsSync } from 'node:fs' ;
8
7
import { join } from 'node:path' ;
9
- import bootstrap from './src/main.server' ;
8
+ import { AppServerModule } from './src/main.server' ;
10
9
11
10
// the Express app is exported so that it can be used by serverless functions
12
11
export function app ( ) : express . Express {
@@ -16,30 +15,26 @@ export function app(): express.Express {
16
15
? join ( distFolder , 'index.original.html' )
17
16
: join ( distFolder , 'index.html' ) ;
18
17
19
- const commonEngine = new CommonEngine ( ) ;
18
+ server . engine (
19
+ 'html' ,
20
+ ngExpressEngine ( {
21
+ bootstrap : AppServerModule
22
+ } )
23
+ ) ;
20
24
21
25
server . set ( 'view engine' , 'html' ) ;
22
26
server . set ( 'views' , distFolder ) ;
23
27
24
- server . get ( '*.*' , express . static ( distFolder , {
25
- maxAge : '1y'
26
- } ) ) ;
28
+ server . get (
29
+ '*.*' ,
30
+ express . static ( distFolder , {
31
+ maxAge : '1y'
32
+ } )
33
+ ) ;
27
34
28
35
// all regular routes use the Angular engine
29
- server . get ( '*' , ( req , res , next ) => {
30
- const { protocol, originalUrl, baseUrl, headers } = req ;
31
-
32
- commonEngine
33
- . render ( {
34
- bootstrap,
35
- documentFilePath : indexHtml ,
36
- url : `${ protocol } ://${ headers . host } ${ originalUrl } ` ,
37
- publicPath : distFolder ,
38
- providers : [
39
- { provide : APP_BASE_HREF , useValue : baseUrl } , ] ,
40
- } )
41
- . then ( ( html ) => res . send ( html ) )
42
- . catch ( ( err ) => next ( err ) ) ;
36
+ server . get ( '*' , ( req , res ) => {
37
+ res . render ( indexHtml , { req, providers : [ { provide : APP_BASE_HREF , useValue : req . baseUrl } ] } ) ;
43
38
} ) ;
44
39
45
40
return server ;
@@ -63,10 +58,10 @@ function run(): void {
63
58
declare const __non_webpack_require__ : NodeRequire ;
64
59
65
60
const mainModule = __non_webpack_require__ . main ;
66
- const moduleFilename = mainModule && mainModule . filename || '' ;
61
+ const moduleFilename = ( mainModule && mainModule . filename ) || '' ;
67
62
68
63
if ( moduleFilename === __filename || moduleFilename . includes ( 'iisnode' ) ) {
69
64
run ( ) ;
70
65
}
71
66
72
- export default bootstrap ;
67
+ export * from './src/main.server' ;
0 commit comments