timestamp를 처리할 일이 있어 entity 파일에 아래와 같이 timestamp의 type을 Date 객체 타입으로 지정하였는데,
@Column({ type: 'timestamp' })
@Transform(transformDate)
timestamp: Date;
Postman에서 이를 기반으로 timestamp값을 Body 안에 넣고, DTO 등등의 파일에서도 Date 객체 값으로 선언을 하였더니
'timestamp must be Date instance'라는 400 에러가 발생하였다. (왜지)
내가 시도해본 방법은 다음과 같다.
1) {
"timestamp" : "2023-07-20"
}
2) {
"timestamp" : "2023-07-20Z00:00 ~" -> 이런 식이었는데 정확한 값이 기억이 나지 않는다
}
위와 같은 방법으로 Date 객체를 나름 표현해봤는데도, 같은 400에러가 발생하였다.
그런데 알고보니, 내가 처리한 방법은 객체가 아닌 '문자열'로 timestamp를 처리하려고 했었다.
그래서 방법을 바꾸어 다음과 같이 시도해보았다.
DTO에서 timestamp를 string으로 받고, string값을 Date로 변환 처리하는 로직
entity.ts
@Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
timestamp: string;
param.ts
@IsString()
@IsNotEmpty()
timestamp: string;
response.dto
@IsString()
@IsNotEmpty()
timestamp: string;
}
controller.ts에서 추가했던 코드
const timestamp = LocalDateTimeUtil.toString(LocalDateTime.now());
위와 같은 방법을 통해 timestamp를 string의 날짜 형태로 처리하는데 성공하였다.
'Backend > NestJS' 카테고리의 다른 글
@Controller 데코레이터 위에 @UseGuards()를 선언했을 경우와 메소드에서만 선언했을때 차이점 (0) | 2023.07.26 |
---|---|
QueryFailedError: invalid input syntax for type uuid (0) | 2023.07.21 |
extends Repository<레포지토리명>이 아닌 <엔티티명>으로 가야하는 이유 (0) | 2023.07.20 |
[TypeORM] @OneToMany 그리고 @ManyToOne에서 추가로 알게 된 것들 (0) | 2023.07.02 |
unknown_request_mapping_exception_1.UnknownRequestMappingException(metatype); (0) | 2023.03.24 |