그래프QL 큰 정수 오류:Int는 32비트 부호가 없는 정수 값을 나타낼 수 없습니다.
UNIX 타임스탬프를 저장하려고 합니다.MongoDB
사용.GraphQL
그러나 GraphQL은 정수를 처리하는 데 한계가 있습니다.아래의 변환을 참조하십시오.
const addUser = {
type: UserType,
description: 'Add an user',
args: {
data: {
name: 'data',
type: new GraphQLNonNull(CompanyInputType)
}
},
resolve(root, params) {
params.data.creationTimestamp = Date.now();
const model = new UserModel(params.data);
const saved = model.save();
if (!saved)
throw new Error('Error adding user');
return saved;
}
}
결과:
"errors": [
{
"message": "Int cannot represent non 32-bit signed integer value: 1499484833027",
"locations": [
{
"line": 14,
"column": 5
}
],
"path": [
"addUser",
"creationTimestamp"
]
}
현재 사용 중입니다.GraphQLInteger
유형 정의의 이 필드:
creationTimestamp: {
type: GraphQLInt
}
더 큰 것이 없다면 어떻게 그 상황을 해결할 수 있습니까?GraphQLInt
에서 이용할 수 있는.GraphQL
?
GraphQL은 오류가 나타내는 32비트보다 큰 정수를 지원하지 않습니다.GraphQL Date와 같은 사용자 지정 스칼라를 사용하는 것이 좋습니다.여기에 "긴" 유형도 있습니다.아니면 자신만의 맞춤형을 굴릴 수도 있습니다. 여기 아폴로의 훌륭한 예가 있습니다.
GraphQL이 더 큰 것을 지원하지 않는 이유가 궁금하다면 Github에서 이 문제를 확인할 수 있습니다.
⚠️정밀도가 떨어질 수 있으므로 권장하지 않음...
하지만 빠른 수정을 원한다면(아마도 사용자 정의 스칼라를 구현할 시간이 없을 것이다),Float
대신 타이핑합니다.Int
.
언급URL : https://stackoverflow.com/questions/44982279/graphql-large-integer-error-int-cannot-represent-non-32-bit-signed-integer-valu
'programing' 카테고리의 다른 글
두 판다 열 사이의 시간 차이(시간 및 분) 계산 (0) | 2023.07.16 |
---|---|
Pandas/NumPy에서 열/변수가 숫자인지 여부를 확인하는 방법은 무엇입니까? (0) | 2023.07.16 |
파이썬에서 이미지의 exif 데이터를 읽으려면 어떻게 해야 합니까? (0) | 2023.07.16 |
Spring Boot이 application.yml config를 로드하지 않습니다. (0) | 2023.07.16 |
data.table에서 이름으로 열을 삭제하려면 어떻게 해야 합니까? (0) | 2023.07.16 |