graphql-server-express
및 apollo-client
과 함께 Apollo 스택을 사용하고 있습니다.Apollo 스택에서 오류를 처리하는 방법
내 백엔드가 완벽하지 않아서 오류가 발생할 수 있으므로 해당 경로에 대한 오류가있는 요청에 응답해야합니다.
지금까지 내 주요 문제는 인증 이었기 때문에 오류로 응답했습니다.
return new Error(`${data.status}: ${data.statusText} @ ${data.url}`)
프론트 엔드에서는 데이터를 쿼리하기 위해 apollo-client를 사용합니다.
return apollo
.query({query: gql`
query {
${query}
}`,
forceFetch: forceFetch
})
.then(result => { debugger; return result.data })
.catch(error => { debugger; console.error(error); });
그러나 쿼리의 한 속성이 오류로 응답하면 catch 기능 만 호출됩니다. 나머지 속성의 데이터까지 전송되었지만 Chrome Dev Tools의 네트워크 탭에 표시됩니다. In은 catch 함수의 오류 객체가 아닙니다.
내 시도는 동일한 개체에서 오류와 데이터를 가져 오는 GraphiQL에서 잘 작동합니다.
그래서 전체 요청을 잃지 않고 속성에 오류를 발생시킬 수 있습니까?