์๋ํ ๊ฒฐ๊ณผ: ์ฝ์์ graphQLError ๋ฉ์์ง ๋ก๊น
์คํจํ ์ฟผ๋ฆฌ์์ ๋ฐํ๋ ์ค๋ฅ ๋ฉ์์ง๋ graphQLErrors
๊ฐ ํญ์ ์ ์๋์ง ์์๊ธฐ ๋๋ฌธ์ onError()
๋ก ํ์๋์ง ์์ง๋ง ํญ์ networkError๊ฐ ๋ฐ์ํฉ๋๋ค. ํฌ๋กฌ์ ๋คํธ์ํฌ ํญ์์ ์๋ต ์ค๋ฅ ๋ฉ์์ง์ ํจ๊ป ์คํจํ ์์ฒญ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ต๋๊น?
// Log errors
const errorLink = onError(({ graphQLErrors, networkError }) => {
if (graphQLErrors)
graphQLErrors.map(({ message, locations, path }) =>
console.log(
`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
)
);
if (networkError) console.log(`[Network error]: ${networkError}`);
});
// Combine all links
const link = split(
// split based on operation type: subscription or query/mutation
({ query }) => {
const { kind, operation } = getMainDefinition(query);
return kind === 'OperationDefinition' && operation === 'subscription';
},
// Subscriptions Link
from([
// Log Apollo operations in development
...(__DEV__ ? [apolloLogger] : []),
// Handle subscriptions, log errors in dev
...(__DEV__ ? [errorLink.concat(subscriptionsLink)] : [subscriptionsLink]),
]),
// Uploads/http Link
from([
// Log Apollo operations in development
...(__DEV__ ? [apolloLogger] : []),
// Handle http/file uploads, log errors in dev
...(__DEV__ ? [errorLink.concat(uploadLink)] : [uploadLink]),
]),
);
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์ . ์ฐ๋ฆฌ๋ ์ ์ญ onError
ํจ์๋ฅผ ๊ฐ๊ณ ์ถ์ต๋๋ค.
ํ์ฌ ๋ชจ๋ subscribeToMore
ํจ์์ onError ํจ์๋ฅผ ์ ๋ฌํ๊ณ ์์ต๋๋ค.
this.unsubscribe = data.subscribeToMore({
document: ...,
variables: {...}
updateQuery: (previous, { subscriptionData }) => {
...
},
onError: err => {
console.log({ err })
},
})
@goldo ์ ํํ, ๊ทธ ํจํด์ ์ ๋ง๋ก ๋ชจ๋ ๊ฒ์ ๊ธฐ๋กํ๊ณ ์ถ์ ๋ ์ ํ์ฅ๋์ง ์์ผ๋ฏ๋ก ์ค๋ฅ ๋งํฌ์ ๋๋ค!
๋ฌธ์ ์ ๋ํด ํผ๋์ค๋ฌ์
const withDataAndErrors = graphql(MY_MIXED_QUERY, {
options: {
errorPolicy: 'all'
}
});
์ฟผ๋ฆฌ๋ณ ์ค๋ฅ ์ ์ฑ
์ด onError()
์ด ๋ฉ์์ง๋ฅผ ๋ฐ๋ ๋ฐฉ์์ ์ํฅ์ ์ค๋๊น? ์๋๋ฉด ์ค๋ฅ ๋ก๊น
์ ํ์ฑํํ๊ธฐ ์ํด GraphQL-Tools/Apollo Server์ ๋ช ๊ฐ์ง ์๋ก์ด ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๊น?
@tim-soft ์ฌ์ฉ ์ค์ธ fetch
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ HTTP 400 ์ํ๋ฅผ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์ทจ๊ธํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๋ฐ ๋ช ๊ฐ์ง ๊ฐ์ ธ์ค๊ธฐ ๋ชจ๋์ ๋ฐ๊ฒฌํ์ต๋๋ค.
์ด์ ๋ํ ์ง์ ์ด ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด์ ๋ํ ์ง์ ์ด ์์ต๋๊น?