用于支持Pub-Sub的Apollo Mutation代码?

时间:2016-10-07 17:35:52

标签: node.js graphql apollo apollo-server

我正在使用GitHunt-API和GitHunt-React的示例代码来实现新的Apollo pubsub代码。这是我在上工作pubsub之前的解析器变种代码。这有效:

Mutation: {
    createIM: (__, args) => { return connectors.IM.create(args); },
},

另外,作为参考,这是我当前的解析器查询。此代码有效:

Query: {
    instant_message(_, args) {
        var ret = connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues));
        return ret;
    }
},

以下是为此突变实施pubsub 的当前草案:

Mutation: {
    createIM(root, args, context) {
        return Promise.resolve()
            .then(() => (
                connectors.IM.create(args)
            ))
            .then(([args]) =>
                connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues))
            )
            .then(comment => {
                // publish subscription notification
                pubsub.publish('IMAdded', comment);
                return comment;
            });
    },

},

http://localhost:3010/graphiql中,会抛出错误:

  

"无效尝试去构造非可迭代实例"

供参考,这里是查询代码我给出了graphiql:

查询:

mutation($fromID: String!, $toID: String!, $msgText: String!){
  createIM(fromID: $fromID, toID: $toID, msgText: $msgText){
    fromID
    toID
    msgText
  }
}

查询变量:

{
  "fromID": "1",
  "toID": "2",
  "msgText": "Test from GraphIQL"
}

pubsub的Mutation代码中的错误是什么?

0 个答案:

没有答案