1- import 'zone.js/node' ;
2-
31import { APP_BASE_HREF } from '@angular/common' ;
42import { CommonEngine } from '@angular/ssr' ;
5- import * as express from 'express' ;
6- import { existsSync } from 'node:fs ' ;
7- import { join } from 'node:path' ;
3+ import express from 'express' ;
4+ import { fileURLToPath } from 'node:url ' ;
5+ import { dirname , join , resolve } from 'node:path' ;
86import AppServerModule from './src/main.server' ;
97
108// The Express app is exported so that it can be used by serverless Functions.
119export function app ( ) : express . Express {
1210 const server = express ( ) ;
13- const distFolder = join ( process . cwd ( ) , 'dist/ReservationClient/browser' ) ;
14- const indexHtml = existsSync ( join ( distFolder , 'index.original.html' ) )
15- ? join ( distFolder , 'index.original.html' )
16- : join ( distFolder , 'index.html' ) ;
11+ const serverDistFolder = dirname ( fileURLToPath ( import . meta. url ) ) ;
12+ const browserDistFolder = resolve ( serverDistFolder , '../browser' ) ;
13+ const indexHtml = join ( serverDistFolder , 'index.server.html' ) ;
1714
1815 const commonEngine = new CommonEngine ( ) ;
1916
2017 server . set ( 'view engine' , 'html' ) ;
21- server . set ( 'views' , distFolder ) ;
18+ server . set ( 'views' , browserDistFolder ) ;
2219
2320 // Example Express Rest API endpoints
2421 // server.get('/api/**', (req, res) => { });
2522 // Serve static files from /browser
26- server . get ( '*.*' , express . static ( distFolder , {
27- maxAge : '1y'
23+ server . get ( '**' , express . static ( browserDistFolder , {
24+ maxAge : '1y' ,
25+ index : 'index.html' ,
2826 } ) ) ;
2927
3028 // All regular routes use the Angular engine
31- server . get ( '*' , ( req , res , next ) => {
29+ server . get ( '** ' , ( req , res , next ) => {
3230 const { protocol, originalUrl, baseUrl, headers } = req ;
3331
3432 commonEngine
3533 . render ( {
3634 bootstrap : AppServerModule ,
3735 documentFilePath : indexHtml ,
3836 url : `${ protocol } ://${ headers . host } ${ originalUrl } ` ,
39- publicPath : distFolder ,
37+ publicPath : browserDistFolder ,
4038 providers : [ { provide : APP_BASE_HREF , useValue : baseUrl } ] ,
4139 } )
4240 . then ( ( html ) => res . send ( html ) )
@@ -56,14 +54,4 @@ function run(): void {
5654 } ) ;
5755}
5856
59- // Webpack will replace 'require' with '__webpack_require__'
60- // '__non_webpack_require__' is a proxy to Node 'require'
61- // The below code is to ensure that the server is run only when not requiring the bundle.
62- declare const __non_webpack_require__ : NodeRequire ;
63- const mainModule = __non_webpack_require__ . main ;
64- const moduleFilename = mainModule && mainModule . filename || '' ;
65- if ( moduleFilename === __filename || moduleFilename . includes ( 'iisnode' ) ) {
66- run ( ) ;
67- }
68-
69- export default AppServerModule ;
57+ run ( ) ;
0 commit comments