【问题标题】:Apollo error: “Connector must be a function or an class”?Apollo 错误:“连接器必须是函数或类”?
【发布时间】:2018-01-21 16:47:31
【问题描述】:

我在 GraphIQL 中有这个查询(注意:Graph I QL)。它给了我一条关于“连接器”的错误消息:

query ($userID: String!) {
  getUserData(id: $userID) {
    name_first
    name_last
    picture_thumbnail
    id
}
}

//query variables:
{
  "userID": "DsmkoaYPeAumREsqC"
}

GraphIQL 正在返回此响应:

{
  "data": {
    "getUserData": null
  },
  "errors": [
    {
      "message": "Connector must be a function or an class",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "getUserData"
      ]
    }
  ]
}

这是我的解析器:

getUserData(_, args) {
    debugger;  <== NEVER ACTIVATES
    return Promise.resolve()
        .then(() => {
            console.log('In getUserData');
            var Users = connectors.UserData.findAll({where: args}).then((Users) => Users.map((item) => item.dataValues));
            return Users;
        })
        .then(Users => {
            return Users;
        })
        .catch((err)=> {
            console.log(err);
        });
},

解析器中的debugger 断点永远不会激活。

我还不知道 GraphIQL 所说的“连接器”是什么意思。需要改变什么?

【问题讨论】:

    标签: graphql apollo apollostack


    【解决方案1】:

    已修复!我必须从对makeExecutableSchema 的调用中删除对connectors 的引用,并将其添加到:

    server.use('/graphql', bodyParser.json(), graphqlExpress({
        schema,
        context: {
            connectors: connectors
        }
    }));
    

    然后我可以像这样在解析器中检索它:

    getUserData: (root, args, context) => {
        return Promise.resolve()
            .then(() => {
                var Users = context.connectors.UserData.findAll({where: args}).then((Users) => Users.map((item) => item.dataValues));
                return Users;
            })
            .then(Users => {
                return Users;
            })
            .catch((err)=> {
                console.log(err);
            });
    },
    

    感谢 Apollo Slack 上的 @marcusnielsen 提供的提示,帮助我找到了这个!

    【讨论】:

      猜你喜欢
      • 2012-12-11
      • 2021-09-10
      • 2014-11-07
      • 2021-09-02
      • 1970-01-01
      • 2014-08-30
      • 2020-04-23
      • 1970-01-01
      • 2020-09-08
      相关资源
      最近更新 更多