Skip to content

Commit 7f45586

Browse files
committed
refactor(@schematics/angular): update templates to use express version 5
1 parent 7a67752 commit 7f45586

File tree

14 files changed

+283
-46
lines changed

14 files changed

+283
-46
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
"@types/babel__core": "7.20.5",
7474
"@types/babel__generator": "^7.6.8",
7575
"@types/browser-sync": "^2.27.0",
76-
"@types/express": "^4.16.0",
76+
"@types/express": "~5.0.1",
7777
"@types/http-proxy": "^1.17.4",
7878
"@types/ini": "^4.0.0",
7979
"@types/jasmine": "~5.1.0",
@@ -106,7 +106,7 @@
106106
"eslint-config-prettier": "10.1.1",
107107
"eslint-plugin-header": "3.1.1",
108108
"eslint-plugin-import": "2.31.0",
109-
"express": "4.21.2",
109+
"express": "5.1.0",
110110
"fast-glob": "3.3.3",
111111
"globals": "16.0.0",
112112
"http-proxy": "^1.18.1",

packages/angular_devkit/build_angular/src/builders/ssr-dev-server/specs/proxy_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ describe('Serve SSR Builder', () => {
3939
server.set('view engine', 'html');
4040
server.set('views', distFolder);
4141
42-
server.get('*.*', express.static(distFolder, {
42+
server.use(express.static(distFolder, {
4343
maxAge: '1y'
4444
}));
4545
46-
server.get('*', (req, res, next) => {
46+
server.use((req, res, next) => {
4747
commonEngine
4848
.render({
4949
bootstrap: AppServerModule,

packages/angular_devkit/build_angular/src/builders/ssr-dev-server/specs/ssl_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ describe('Serve SSR Builder', () => {
3939
server.set('view engine', 'html');
4040
server.set('views', distFolder);
4141
42-
server.get('*.*', express.static(distFolder, {
42+
server.use(express.static(distFolder, {
4343
maxAge: '1y'
4444
}));
4545
46-
server.get('*', (req, res, next) => {
46+
server.use((req, res, next) => {
4747
commonEngine
4848
.render({
4949
bootstrap: AppServerModule,

packages/angular_devkit/build_angular/src/builders/ssr-dev-server/specs/works_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ describe('Serve SSR Builder', () => {
3838
server.set('view engine', 'html');
3939
server.set('views', distFolder);
4040
41-
server.get('*.*', express.static(distFolder, {
41+
server.use(express.static(distFolder, {
4242
maxAge: '1y'
4343
}));
4444
45-
server.get('*', (req, res, next) => {
45+
server.use((req, res, next) => {
4646
commonEngine
4747
.render({
4848
bootstrap: AppServerModule,

packages/schematics/angular/migrations/use-application-builder/migration.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ function* updateBuildTarget(
158158

159159
yield externalSchematic('@schematics/angular', 'ssr', {
160160
project: projectName,
161-
skipInstall: true,
162161
});
163162
}
164163
}

packages/schematics/angular/ssr/files/application-builder/server.ts.template

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const angularApp = new AngularNodeAppEngine();
1818
*
1919
* Example:
2020
* ```ts
21-
* app.get('/api/**', (req, res) => {
21+
* app.get('/api/{*splat}', (req, res) => {
2222
* // Handle API request
2323
* });
2424
* ```
@@ -38,7 +38,7 @@ app.use(
3838
/**
3939
* Handle all other requests by rendering the Angular application.
4040
*/
41-
app.use('/**', (req, res, next) => {
41+
app.use((req, res, next) => {
4242
angularApp
4343
.handle(req)
4444
.then((response) =>
@@ -53,7 +53,11 @@ app.use('/**', (req, res, next) => {
5353
*/
5454
if (isMainModule(import.meta.url)) {
5555
const port = process.env['PORT'] || 4000;
56-
app.listen(port, () => {
56+
app.listen(port, (error) => {
57+
if (error) {
58+
throw error;
59+
}
60+
5761
console.log(`Node Express server listening on http://localhost:${port}`);
5862
});
5963
}

packages/schematics/angular/ssr/files/server-builder/server.ts.template

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ export function app(): express.Express {
2121
server.set('views', distFolder);
2222

2323
// Example Express Rest API endpoints
24-
// server.get('/api/**', (req, res) => { });
24+
// server.get('/api/{*splat}', (req, res) => { });
2525
// Serve static files from /browser
26-
server.get('*.*', express.static(distFolder, {
26+
server.use(express.static(distFolder, {
2727
maxAge: '1y'
2828
}));
2929

3030
// All regular routes use the Angular engine
31-
server.get('*', (req, res, next) => {
31+
server.use((req, res, next) => {
3232
const { protocol, originalUrl, baseUrl, headers } = req;
3333

3434
commonEngine
@@ -51,7 +51,11 @@ function run(): void {
5151

5252
// Start up the Node server
5353
const server = app();
54-
server.listen(port, () => {
54+
server.listen(port, (error) => {
55+
if (error) {
56+
throw error;
57+
}
58+
5559
console.log(`Node Express server listening on http://localhost:${port}`);
5660
});
5761
}

packages/schematics/angular/ssr/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { posix } from 'node:path';
2424
import { Schema as ServerOptions } from '../server/schema';
2525
import {
2626
DependencyType,
27+
ExistingBehavior,
2728
InstallBehavior,
2829
addDependency,
2930
readWorkspace,
@@ -299,10 +300,12 @@ function addDependencies({ skipInstall }: SSROptions, isUsingApplicationBuilder:
299300
addDependency('express', latestVersions['express'], {
300301
type: DependencyType.Default,
301302
install,
303+
existing: ExistingBehavior.Replace,
302304
}),
303305
addDependency('@types/express', latestVersions['@types/express'], {
304306
type: DependencyType.Dev,
305307
install,
308+
existing: ExistingBehavior.Replace,
306309
}),
307310
];
308311

packages/schematics/angular/utility/latest-versions/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
"comment": "This file is needed so that dependencies are synced by Renovate.",
44
"private": true,
55
"dependencies": {
6-
"@types/express": "^4.17.17",
6+
"@types/express": "^5.0.1",
77
"@types/jasmine": "~5.1.0",
88
"@types/node": "^20.17.19",
99
"browser-sync": "^3.0.0",
10-
"express": "^4.18.2",
10+
"express": "^5.1.0",
1111
"jasmine-core": "~5.6.0",
1212
"jasmine-spec-reporter": "~7.0.0",
1313
"karma-chrome-launcher": "~3.2.0",

0 commit comments

Comments
 (0)