Skip to content

Commit 204bc37

Browse files
committed
fix: adds server.ts files from NX monorepo builds to tools folder
1 parent 92e3427 commit 204bc37

File tree

2 files changed

+131
-0
lines changed

2 files changed

+131
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import {
2+
AngularNodeAppEngine,
3+
createNodeRequestHandler,
4+
isMainModule,
5+
writeResponseToNodeResponse,
6+
} from '@angular/ssr/node';
7+
import express from 'express';
8+
import { dirname, resolve } from 'node:path';
9+
import { fileURLToPath } from 'node:url';
10+
11+
const serverDistFolder = dirname(fileURLToPath(import.meta.url));
12+
const browserDistFolder = resolve(serverDistFolder, '../browser');
13+
14+
const app = express();
15+
const angularApp = new AngularNodeAppEngine();
16+
17+
/**
18+
* Example Express Rest API endpoints can be defined here.
19+
* Uncomment and define endpoints as necessary.
20+
*
21+
* Example:
22+
* ```ts
23+
* app.get('/api/**', (req, res) => {
24+
* // Handle API request
25+
* });
26+
* ```
27+
*/
28+
29+
/**
30+
* Serve static files from /browser
31+
*/
32+
app.use(
33+
express.static(browserDistFolder, {
34+
maxAge: '1y',
35+
index: false,
36+
redirect: false,
37+
})
38+
);
39+
40+
/**
41+
* Handle all other requests by rendering the Angular application.
42+
*/
43+
app.use('/**', (req, res, next) => {
44+
angularApp
45+
.handle(req)
46+
.then((response) =>
47+
response ? writeResponseToNodeResponse(response, res) : next()
48+
)
49+
.catch(next);
50+
});
51+
52+
/**
53+
* Start the server if this module is the main entry point.
54+
* The server listens on the port defined by the `PORT` environment variable, or defaults to 4000.
55+
*/
56+
if (isMainModule(import.meta.url)) {
57+
const port = process.env['PORT'] || 4000;
58+
app.listen(port, () => {
59+
console.log(`Node Express server listening on http://localhost:${port}`);
60+
});
61+
}
62+
63+
/**
64+
* The request handler used by the Angular CLI (dev-server and during build).
65+
*/
66+
export const reqHandler = createNodeRequestHandler(app);
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import { APP_BASE_HREF } from '@angular/common';
2+
import { CommonEngine, isMainModule } from '@angular/ssr/node';
3+
import express from 'express';
4+
import { dirname, join, resolve } from 'node:path';
5+
import { fileURLToPath } from 'node:url';
6+
import bootstrap from './main.server';
7+
8+
const serverDistFolder = dirname(fileURLToPath(import.meta.url));
9+
const browserDistFolder = resolve(serverDistFolder, '../browser');
10+
const indexHtml = join(serverDistFolder, 'index.server.html');
11+
12+
const app = express();
13+
const commonEngine = new CommonEngine();
14+
15+
/**
16+
* Example Express Rest API endpoints can be defined here.
17+
* Uncomment and define endpoints as necessary.
18+
*
19+
* Example:
20+
* ```ts
21+
* app.get('/api/**', (req, res) => {
22+
* // Handle API request
23+
* });
24+
* ```
25+
*/
26+
27+
/**
28+
* Serve static files from /browser
29+
*/
30+
app.get(
31+
'**',
32+
express.static(browserDistFolder, {
33+
maxAge: '1y',
34+
index: 'index.html',
35+
})
36+
);
37+
38+
/**
39+
* Handle all other requests by rendering the Angular application.
40+
*/
41+
app.get('**', (req, res, next) => {
42+
const { protocol, originalUrl, baseUrl, headers } = req;
43+
44+
commonEngine
45+
.render({
46+
bootstrap,
47+
documentFilePath: indexHtml,
48+
url: `${protocol}://${headers.host}${originalUrl}`,
49+
publicPath: browserDistFolder,
50+
providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }],
51+
})
52+
.then((html) => res.send(html))
53+
.catch((err) => next(err));
54+
});
55+
56+
/**
57+
* Start the server if this module is the main entry point.
58+
* The server listens on the port defined by the `PORT` environment variable, or defaults to 4000.
59+
*/
60+
if (isMainModule(import.meta.url)) {
61+
const port = process.env['PORT'] || 4000;
62+
app.listen(port, () => {
63+
console.log(`Node Express server listening on http://localhost:${port}`);
64+
});
65+
}

0 commit comments

Comments
 (0)