Я создаю простой REST API с Typescript, Koa и Sequelize.
Если клиент выполняет недопустимый запрос PUT с пустым полем «title» или «author», он возвращает ошибку 500.Я бы предпочел не сообщать об ошибке, подобной этой, но вместо этого хотел бы вернуть «400 неверных запросов».Как правильно это сделать?
Вот часть контроллера:
import {JsonController, Get, Post, Put, Body, Param} from "routing-controllers";
import {Book} from "../models/Book";
@JsonController("/api")
export class BookController {
@Put("/books/:id")
async update(@Param("id") id: number, @Body() book: Book) {
return await Book.update(book, {where: {id: id}});
}
}
И это модель, где я использую валидаторы Sequelize в качестве декораторов:
import {Table, Column, NotEmpty, Equals, Model, HasMany} from 'sequelize-typescript';
@Table({tableName: 'Books'})
export class Book extends Model<Book> {
@NotEmpty
@Column
title: string;
@NotEmpty
@Column
author: string;
}
Сообщение об ошибке:
"message": "Validation error: Validation notEmpty on title failed,\nValidation error: Validation notEmpty on author failed"