Skip to content

Commit eb8e2b4

Browse files
committed
feat: add error typeorm handle
1 parent adc55f9 commit eb8e2b4

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { green } from 'colorette'
2+
import { NextFunction, Request, Response } from 'express'
3+
import { QueryFailedError } from 'typeorm'
4+
import { logger } from '~/config/logger'
5+
6+
export default async function expressErrorTypeorm(
7+
err: any,
8+
req: Request,
9+
res: Response,
10+
next: NextFunction
11+
) {
12+
if (err instanceof QueryFailedError) {
13+
const msgType = green('typeorm')
14+
logger.error(`${msgType} - err, ${err.message ?? err}`)
15+
16+
const result = {
17+
statusCode: 400,
18+
error: 'Bad Request',
19+
message: `${msgType} ${err.message}`,
20+
}
21+
22+
return res.status(400).json(result)
23+
}
24+
25+
next(err)
26+
}

src/config/app.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import compression from 'compression'
2+
import cookieParser from 'cookie-parser'
23
import cors from 'cors'
34
import express, { Application, Request, Response } from 'express'
45
import userAgent from 'express-useragent'
56
import helmet from 'helmet'
7+
import hpp from 'hpp'
68
import path from 'path'
79
import requestIp from 'request-ip'
810
import expressErrorHandle from '~/app/middleware/error-handle'
11+
import expressErrorTypeorm from '~/app/middleware/error-typeorm'
912
import expressErrorValidation from '~/app/middleware/error-validation'
1013
import expressRateLimit from '~/app/middleware/rate-limit'
1114
import expressUserAgent from '~/app/middleware/user-agent'
@@ -31,8 +34,10 @@ export class App {
3134
this._app.use(express.urlencoded({ extended: true }))
3235
this._app.use(express.static(path.resolve(`${__dirname}/public`)))
3336
this._app.use(compression())
37+
this._app.use(cookieParser())
3438
this._app.use(helmet())
3539
this._app.use(cors({ origin: allowedCors }))
40+
this._app.use(hpp())
3641
this._app.use(requestIp.mw())
3742
this._app.use(userAgent.express())
3843

@@ -62,6 +67,9 @@ export class App {
6267
// @ts-expect-error
6368
this._app.use(expressErrorValidation)
6469

70+
// @ts-expect-error
71+
this._app.use(expressErrorTypeorm)
72+
6573
// @ts-expect-error
6674
this._app.use(expressErrorHandle)
6775

0 commit comments

Comments
 (0)