Когда я отправляю запрос, он не сохраняет мою сущность в базе данных и не сообщает о каких-либо ошибках или предупреждениях.
Контроллер:
@Controller('recipes')
export class RecipesController {
constructor(private readonly recipeService: RecipesService) {}
@Get()
async findAll(): Promise<Recipe[]> {
return this.recipeService.findAll();
}
@Post()
async create(@Body() createRecipeDto: Recipe) {
this.recipeService.create(createRecipeDto);
}
}
Услуги:
@Injectable()
export class RecipesService {
constructor(@InjectRepository(Recipe) private readonly recipeRepository: Repository<Recipe>) {}
async create(recipe: Recipe) {
const d = await this.recipeRepository.create(recipe);
console.log("d:", d);
}
async findAll() {
return await this.recipeRepository.find();
}
}
Организация:
@Entity()
export class Recipe {
@PrimaryGeneratedColumn()
id: number;
// @IsString()
@Column()
name: string;
// @IsString()
@Column('text')
description?: string;
// @IsString()
@Column()
image: string;
// @IsArray()
ingredients: string[];
// @IsArray()
instructions: string[];
// @IsString()
@Column()
prepTime?: string;
// @IsString()
@Column()
cookTime?: string;
// @IsString()
@Column()
yield?: string;
// @IsNumber()
@Column('int')
rating?: number;
// @IsArray()
keywords?: string[];
// @IsArray()
categories: string[];
// @IsString()
@Column()
cuisine?: string;
// @IsBoolean()
@Column('boolean')
draft?: boolean;
}
Мой запрос с использованием Почтальона:
curl -X POST \
http://localhost:3000/recipes \
-H 'Content-Type: application/json' \
-H 'Postman-Token: f23b5d42-1c40-4dae-b9b8-b32b733f38b4' \
-H 'cache-control: no-cache' \
-d '{
"name":"recipe5",
"description": "desc",
"image": "http://..",
"ingredients": ["-"],
"instructions": ["1"],
"prepTime": "1:20",
"cookTime": "1:00",
"yield": "8 servings",
"rating": 4,
"keywords": ["1"],
"categories": ["cat1", "cat2"],
"cuisine": "American",
"draft": false
}'
Возвращает 201.
Мой вызов GET возвращает только запись, которую я создал вручную.