Skip to content

Commit efdea2a

Browse files
committed
chore(ts): move an exception handler in order to catch exceptions from custom routes
Part of #27 Relate to #48
1 parent 23af839 commit efdea2a

File tree

5 files changed

+16
-8
lines changed

5 files changed

+16
-8
lines changed

examples/ts/express/mysql/app.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import express from 'express'
2+
import { NextFunction, Request, Response } from 'express'
23
import mysql from 'mysql'
34

45
const routes = require('./routes')
@@ -37,6 +38,11 @@ const pool = mysql.createPool({
3738
routes.register(app, pool)
3839
custom_routes.register(app, pool)
3940

41+
app.use((error: any, req: Request, res: Response, next: NextFunction) => {
42+
console.error(error)
43+
res.status(500).json({ "error": "Internal Server Error" })
44+
})
45+
4046
const port = process.env.PORT || 3000
4147
app.listen(port, () => {
4248
console.log(`Listen on ${port}`)

examples/ts/express/mysql/custom_routes.ts

+4
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,8 @@ exports.register = (app: Express, pool: Pool) => {
77
res.json({ "custom": true })
88
})
99

10+
app.get('/custom/exception', (req: Request, res: Response, next: NextFunction) => {
11+
throw new Error('expected err')
12+
})
13+
1014
}

examples/ts/express/mysql/routes.ts

-4
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,6 @@ const register = (app: Express, pool: Pool) => {
192192
)
193193
})
194194

195-
app.use((error: any, req: Request, res: Response, next: NextFunction) => {
196-
console.error(error)
197-
res.status(500).json({ "error": "Internal Server Error" })
198-
})
199195
}
200196

201197
exports.register = register

src/templates/app.ts.ejs

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ function removeExtension(filename) {
55
}
66
-%>
77
import express from 'express'
8+
import { NextFunction, Request, Response } from 'express'
89
import mysql from 'mysql'
910

1011
const routes = require('./routes')
@@ -53,6 +54,11 @@ routes.register(app, pool)
5354
<%- routerName %>.register(app, pool)
5455
<% }) -%>
5556

57+
app.use((error: any, req: Request, res: Response, next: NextFunction) => {
58+
console.error(error)
59+
res.status(500).json({ "error": "Internal Server Error" })
60+
})
61+
5662
const port = process.env.PORT || 3000
5763
app.listen(port, () => {
5864
console.log(`Listen on ${port}`)

src/templates/routes.ts.ejs

-4
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,6 @@ endpoints.forEach(function(endpoint) {
8989
})
9090
})
9191
%>
92-
app.use((error: any, req: Request, res: Response, next: NextFunction) => {
93-
console.error(error)
94-
res.status(500).json({ "error": "Internal Server Error" })
95-
})
9692
}
9793

9894
exports.register = register

0 commit comments

Comments
 (0)