작성
·
135
·
수정됨
0
import { QueryFunction } from "@tanstack/react-query";
import { User } from "@/model/User";
const getUser: QueryFunction<User, [string, string]> = async ({ queryKey }) => {
const [_1, username] = queryKey;
const res = await fetch(`http://localhost:9090/api/users/${username}`, {
next: {
tags: ["users", username],
},
cache: "no-store",
});
console.log("res.ok : ", res.ok);
if (!res.ok) {
throw new Error("해당 유저 정보를 불러오지 못 했습니다.");
}
return res.json();
};
export default getUser;
mocks>handler.ts에 없는 username을 url에 입력해도 res.ok로 떠서 if문을 그냥 통과해버립니다.
혹시 제가 놓치는 부분이 있는걸까요?
아.. 해결했습니다. 제가 이전에 반환을 아래 코드로 진행했었습니다.
이렇게 return하고 있었어서 못 알아챘던 것 같습니다.
아래 코드로 수정하니 해결되었습니다. 이전 코드는 왜 에러 캐칭이 되지 않았는지 알아보겠습니다. ㅠ
칼답변 감사드립니다.
--- + 1번 코드와 2번 코드 차이?
A.
HttpResponse.json()
의 첫 번째 인자는 무조건 200을 반환한다. 따라서 에러 코드를 반환하기 위해서는 명시적으로 두 번째 인자에 에러 상태코드를 작성해주자.