2017-08-13 37 views
0

我在GraphIQL中有这个查询(注意:Graph I QL)。它给了我关于 “连接器” 的错误消息:Apollo错误:“连接器必须是功能或类”?

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是什么意思的“连接器”。什么需要改变?

回答

0

固定!我不得不从我的电话删除提及connectorsmakeExecutableSchema,并把它添加到:

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); 
     }); 
}, 

由于@marcusnielsen上Apollo Slack帮助我找到了这个技巧!

相关问题