【问题标题】:Intercepting network errors on apollo-module using Nuxt使用 Nuxt 拦截 apollo 模块上的网络错误
【发布时间】:2019-08-22 06:19:57
【问题描述】:

我正在使用nuxtapollo-module,我需要拦截可能的网络错误(更具体的是401/403),以便我可以显示一些错误模式并注销我的用户。在文档中,我看到在 nuxt.config.js 中您可以这样做:

  apollo: {
    tokenName: 'Authorization',
    authenticationType: 'Bearer',
    errorHandler(error) { do something }
  }
...

但在该配置文件中,我无法访问我需要的应用程序功能(例如错误模式或我的路由器)。有什么办法存档吗?

【问题讨论】:

    标签: vue.js apollo nuxt.js apollo-client vue-apollo


    【解决方案1】:

    你可以使用 apollo-error-link

      apollo: {
        clientConfigs: {
          default: '~/apollox/client-configs/default.js'
        }
      },
    

    这里是配置

    import { onError } from 'apollo-link-error'
    
    export default function(ctx) {
      const errorLink = onError(({ graphQLErrors, networkError }) => {
    
      })
      return {
        link: errorLink,
    
        // required
        httpEndpoint: ctx.app.$env.GRAPHQL_URL,
    
        httpLinkOptions: {
          credentials: 'same-origin'
        },
      }
    }
    

    【讨论】:

    • 完美运行!谢谢:)
    • 非常感谢。顺便说一句,我认为您的意思是在 default: '~/apollox/client-configs/default.js' 中写 apollo 而不是 apollox
    • 你可以随意命名文件
    猜你喜欢
    • 2020-12-21
    • 2016-03-28
    • 2015-06-03
    • 2013-07-04
    • 1970-01-01
    • 2020-08-22
    • 2020-12-27
    • 2018-01-09
    • 2018-11-02
    相关资源
    最近更新 更多