Apollo js (graphql) văng lỗi Unhandled error GraphQL error
Chào mọi người.
Mình cũng đang tìm hiểu apollo kết hợp với react js để query qua Graphql. Mình đang gặp vấn đề về việc ném error về client. Trong phần resolvers mình viết thế này
contacts: async (root, arg, context) => {
if (!context.user) {
throw new AuthorizeError();
}
return getAllContacts();
},
Trường hợp hoàn hảo là người dùng đăng nhập thành công. context.user sẽ có giá trị. và mình lấy được danh sách contacts.
Sau đó mình check trường hợp context.user = null. thì mình ném ra một cái lỗi throw new AuthorizeError()
const AuthorizeError = createError('AuthorizeError', {
message: 'Bạn không có quyền truy cập hệ thống.hehe',
data: {
fasdfaf: 'fdasff'
}
});
Sau khi mình reload lại thì Dưới client ( trong source react ) mình catch được cái lỗi đó. nhưng khong hiểu vì sao trong tab console của trình duyệt lại văng ra cái lỗi
render() {
const { data: { loading, error, contacts }, client } = this.props;
if (loading) {
return (<p>Loading.....</p>);
}
debugger;
if (error) {
if (error.graphQLErrors[0].name == "AuthorizeError") {
return {error.graphQLErrors[0].message}
}
}
}
Trong tab console văng lỗi này Unhandled error GraphQL error: Bạn không có quyền truy cập hệ thống.hehe Error: GraphQL error: Bạn không có quyền truy cập hệ thống.hehe at new ApolloError Mình xin đính kèm cái hình
=> Mọi người có ai gặp lỗi này rồi. Mong mọi người giúp đỡ. Cám ơn mọi người rất nhiều.
1 CÂU TRẢ LỜI
chào bạn, không hẳn là do chưa try catch đâu bạn. mình đang tìm hiểu về apollo js. phần trả response về cho client. mình đã tìm hiểu trên mạng. xem nhiều clip vs tutorial đều throw new Error . Mình đang phân vân là tại sao mình đã get được error trên server
const { data: { loading, error, contacts }, client } = this.props;
trả về trong trong phần render() của react ròi. mà tại sao trong tab console của trình duyệt lại văng ra cái lỗi
Unhandled error GraphQL error: Bạn không có quyền truy cập hệ thống.hehe Error: GraphQL error: Bạn không có quyền truy cập hệ thống.hehe
at new ApolloError (http://localhost:3000/static/js/bundle.js:20785:28)
at http://localhost:3000/static/js/bundle.js:19847:41
at http://localhost:3000/static/js/bundle.js:20234:17
at Array.forEach (<anonymous>)
at http://localhost:3000/static/js/bundle.js:20233:18
at Map.forEach (<anonymous>)
at QueryManager../node_modules/apollo-client/core/QueryManager.js.QueryManager.broadcastQueries (http://localhost:3000/static/js/bundle.js:20228:22)
at Object.next (http://localhost:3000/static/js/bundle.js:20267:31)
at SubscriptionObserver.next (http://localhost:3000/static/js/bundle.js:145182:14)
at http://localhost:3000/static/js/bundle.js:21121:76
at Array.forEach (<anonymous>)
at Object.next (http://localhost:3000/static/js/bundle.js:21121:43)
at SubscriptionObserver.next (http://localhost:3000/static/js/bundle.js:145182:14)
at SubscriptionObserver.next (http://localhost:3000/static/js/bundle.js:145182:14)
at http://localhost:3000/static/js/bundle.js:21319:26
at <anonymous>
__stack_frame_overlay_proxy_console__ @ index.js:2177
Uncaught (in promise) Error: GraphQL error: Bạn không có quyền truy cập hệ thống.hehe
at new ApolloError (ApolloError.js:34)
at Object.next (QueryManager.js:700)
at SubscriptionObserver.next (zen-observable.js:154)
at dedupLink.js:49
at Array.forEach (<anonymous>)
at Object.next (dedupLink.js:49)
at SubscriptionObserver.next (zen-observable.js:154)
at SubscriptionObserver.next (zen-observable.js:154)
at httpLink.js:140
at <anonymous>````
Viblo có hỗ trợ cú pháp markdown trong form của comment, answer, question, post giúp highlight code bằng cú pháp: ``` CODE HERE ```. Bạn có thể đặt câu hỏi và sử dụng cú pháp trên để câu hỏi được hiển thị đẹp và dễ đọc hơn nhé.
VD: Chào mọi người.
Mình cũng đang tìm hiểu apollo kết hợp với react js để query qua Graphql. Mình đang gặp vấn đề về việc ném error về client. Trong phần resolvers mình viết thế này
Trường hợp hoàn hảo là người dùng đăng nhập thành công. context.user sẽ có giá trị. và mình lấy được danh sách contacts.
Sau đó mình check trường hợp context.user = null. thì mình ném ra một cái lỗi throw new AuthorizeError():
Sau khi mình reload lại thì Dưới client ( trong source react ) mình catch được cái lỗi đó. nhưng khong hiểu vì sao trong tab console của trình duyệt lại văng ra cái lỗi:
Trong tab console văng lỗi này Unhandled error GraphQL error: Bạn không có quyền truy cập hệ thống.hehe Error: GraphQL error: Bạn không có quyền truy cập hệ thống.hehe at new ApolloError Mình xin đính kèm cái hình
ok. thanks bạn nhé. hihi.