我是JavaScript和NodeJS领域的新手。我在Java和C#方面都有很多经验,但这对我来说都很新鲜。
作为POC,我正在尝试使用GraphQL打包salesforce。由于对salesforce的调用是异步的,因此我想在定义模式和基础查询之间的绑定时返回对GraphQL的承诺。
然而,当我这样做时,我收到消息“Expected Iterable,但没有为字段Query.getAccounts找到一个。”
这是我非常糟糕的代码:
conn.login('username', 'password' + 'security-token', function(err, userInfo) {
if (err) {
console.log(err);
console.log("Cannot login to Salesforce");
} else {
var root = {
getAccounts: function ({offset, limit}) {
return new Promise(function(resolve, reject) {
conn.query("SELECT Id, Name FROM Account", function(err, result) {
if (err) {
reject();
}
resolve(result);
});
});
}
}
var app = express();
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');
}
});
我应该使用阿波罗吗?
答案 0 :(得分:0)
这里的问题是Salesforce的响应不是列表格式。因此,我不得不将另一个承诺链接起来,以便从响应中提取我关心的实际数据。
基本上,它是来自GraphQL的误导消息。