fix: custom error handler
This commit is contained in:
		
							parent
							
								
									5785f30075
								
							
						
					
					
						commit
						18b4feb104
					
				| @ -5,12 +5,11 @@ import { Command } from 'commander'; | |||||||
| import i18next from 'i18next'; | import i18next from 'i18next'; | ||||||
| import { DefaultContext, DefaultState } from 'koa'; | import { DefaultContext, DefaultState } from 'koa'; | ||||||
| import bodyParser from 'koa-bodyparser'; | import bodyParser from 'koa-bodyparser'; | ||||||
|  | import { BaseError } from 'sequelize'; | ||||||
| import Application, { ApplicationOptions } from './application'; | import Application, { ApplicationOptions } from './application'; | ||||||
| import { dataWrapping } from './middlewares/data-wrapping'; | import { dataWrapping } from './middlewares/data-wrapping'; | ||||||
| import { table2resource } from './middlewares/table2resource'; | import { table2resource } from './middlewares/table2resource'; | ||||||
| 
 | 
 | ||||||
| import ValidationError from 'sequelize'; |  | ||||||
| 
 |  | ||||||
| export function createDatabase(options: ApplicationOptions) { | export function createDatabase(options: ApplicationOptions) { | ||||||
|   if (options.database instanceof Database) { |   if (options.database instanceof Database) { | ||||||
|     return options.database; |     return options.database; | ||||||
| @ -97,12 +96,11 @@ export function createCli(app: Application, options: ApplicationOptions): Comman | |||||||
| 
 | 
 | ||||||
| function registerErrorHandler(app: Application) { | function registerErrorHandler(app: Application) { | ||||||
|   app.errorHandler.register( |   app.errorHandler.register( | ||||||
|     (err) => err.name == 'SequelizeValidationError', |     (err) => err?.errors?.length && err instanceof BaseError, | ||||||
|     (err, ctx) => { |     (err, ctx) => { | ||||||
|       ctx.body = { |       ctx.body = { | ||||||
|         errors: err.errors.map((err) => ({ message: err.message })), |         errors: err.errors.map((err) => ({ message: err.message })), | ||||||
|       }; |       }; | ||||||
| 
 |  | ||||||
|       ctx.status = 400; |       ctx.status = 400; | ||||||
|     }, |     }, | ||||||
|   ); |   ); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user