인프런 커뮤니티 질문&답변

앱프님의 프로필 이미지
앱프

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

기간별 조회가 안되고 있습니다.

해결된 질문

작성

·

115

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(
        `기간 내에 주문 데이터가 없습니다.`,
      );
    }

 

1089.png

디비쪽 데이타를 이와 같습니다. 입력 값은

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

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

404면 존재하지 않는 URL아닌가요? 에러에 ID dateRange not found... 라는데 어떻게 프로젝트를 짜셨는지는 제가 모르지만 제공해주신 정보에선 URL에 dateRange가 있네요. 충분한 힌트가 될거라 생각됩니다.

감사합니다!

앱프님의 프로필 이미지
앱프
질문자

감사합니다.. date에 매몰에서 404를 놓쳤네요.. ㅡ.ㅜ;

controller에 위쪽에 @Get(':id') 가 먼저 작동해서 그런거였네요.. 이런.. ㅜ.ㅜ;

앱프님의 프로필 이미지
앱프

작성한 질문수

질문하기