小编Loc*_*0_0的帖子

Apollo客户端突变错误处理

我在服务器上使用GraphQL和猫鼬。

发生验证错误时,GraphQL突变会发送状态码为200的响应。在客户端,响应如下所示:

{
  "data": null,
  "errors": [{
    "message": "error for id...",
    "path": "_id"
  }]
}
Run Code Online (Sandbox Code Playgroud)

我想使用catchapollo-client突变承诺的功能来访问验证错误。就像是:

      this.props.deleteProduct(this.state.selectedProductId).then(response => {
         // handle successful mutation
      }).catch(response => {
         const errors = response.errors; // does not work
         this.setState({ errorMessages: errors.map(error => error.message) });
      });
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

apollo graphql apollo-client

8
推荐指数
2
解决办法
9407
查看次数

GraphQL订阅:最大侦听器超出警告

我们使用GraphQL订阅和pubsub订阅帖子.

当超过10个订阅发生时,我们得到节点警告"MaxListenersExceededWarning:检测到可能的EventEmitter内存泄漏".

是否可以在pubsub类中引发最大侦听器?

pubsub类位于一个单独的模块中,如下所示:

import { PubSub } from 'graphql-subscriptions';

const pubsub = new PubSub();

export { pubsub };
Run Code Online (Sandbox Code Playgroud)

订阅服务器如下所示:

import { SubscriptionManager } from 'graphql-subscriptions';
import { createServer } from 'http';
import { SubscriptionServer } from 'subscriptions-transport-ws';

import { pubsub } from './subscriptions';
import executableSchema from './executableSchema';

const WS_PORT = 8080;

const websocketServer = createServer((request, response) => {
  response.writeHead(404);
  response.end();
});

websocketServer.listen(WS_PORT, () => console.log(
  `Websocket Server is now running on http://localhost:${WS_PORT}`
));

const subscriptionManager = new SubscriptionManager({
  schema: …
Run Code Online (Sandbox Code Playgroud)

subscriptions node.js graphql graphql-subscriptions

6
推荐指数
3
解决办法
1669
查看次数