해결된 질문
24.06.04 18:58 작성
·
106
0
안녕하세요. 강의 잘 듣고 있습니다.
막히는 부분에서 부분별로 강의를 들으면서 하는데, 개념 잡기에는 좋은데.. 실무에서 변형하면서 사용하려니 막히는 부분이 생기네요.. ㅡ.ㅜ;
우선 주문 데이타를 기가별로 조회를 하려고 하는데, 안되고 있습니다.
구글링과 스택쪽을 찾아봐도 딱히 잡히는것도 없고.. gpt가 알려준대로 해도 안되네요..
db는 postgreSQL로 최신버전이며..
구성은 nest.js + prisma + swagger + graphQL로 구성되어 있으며, 버전은 최신버전으로 현재 구성된 상태입니다.
// schema.prisma
model Order {
....
order_date DateTime?
}
// orders.controller.ts
async getOrdersByDateRange(
@Query('start_date') start_date: string,
@Query('end_date') end_date: string,
): Promise<Order[]> {
const startDate = new Date(start_date);
const endDate = new Date(end_date);
if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
throw new BadRequestException('날짜 형식이 잘못되었습니다.');
}
return this.ordersService.getOrdersByDateRange(startDate, endDate);
}
// orders.service.ts
async getOrdersByDateRange(
start_date: Date,
end_date: Date,
): Promise<Order[]> {
const orders = await this.prisma.order.findMany({
where: {
order_date: {
gte: new Date(start_date.setHours(0, 0, 0, 0)), // 시작일 00:00:00
lte: new Date(end_date.setHours(23, 59, 59, 999)), // 종료일 23:59:59.999
// gte: start_date, // 이것도 안됨
// lte: end_date, // 이것도 안됨
},
//order_date: Between(start_date, end_date),
},
});
if (!orders || orders.length === 0) {
throw new NotFoundException(
`기간 내에 주문 데이터가 없습니다.`,
);
}
디비쪽 데이타를 이와 같습니다. 입력 값은
start_date : 2024-05-01
end_date : 2024-06-05
이렇게 전달해서 조회하는데, 아무런 데이타를 못 가져오고 있습니다.
request url : http://localhost:3000/orders/dateRange?start_date=2024-05-01&end_date=2024-06-05
response body:
{
"message": "Order with ID dateRange not found.",
"error": "Not Found",
"statusCode": 404
}
이처럼 출력되고 있습니다.
아무리 해 봐도 안되어서 질문 드립니다.
알려주시면 감사하겠습니다.. ㅜ.ㅜ
답변 1
0
2024. 06. 05. 13:07
안녕하세요!
404면 존재하지 않는 URL아닌가요? 에러에 ID dateRange not found... 라는데 어떻게 프로젝트를 짜셨는지는 제가 모르지만 제공해주신 정보에선 URL에 dateRange가 있네요. 충분한 힌트가 될거라 생각됩니다.
감사합니다!
2024. 06. 05. 17:19
감사합니다.. date에 매몰에서 404를 놓쳤네요.. ㅡ.ㅜ;
controller에 위쪽에 @Get(':id') 가 먼저 작동해서 그런거였네요.. 이런.. ㅜ.ㅜ;