【发布时间】:2023-04-05 16:06:01
【问题描述】:
我正在尝试运行 graphql 查询,但它一直给我“TypeError:字符串不能代表值:”错误。
我的查询的架构:
type User {
active: Boolean!
email: String!
fullname: String!
description: String!
tags: [String!]!
}
type Query {
getAllUsers: [User]!
}
我的解析器:
Query: {
getAllUsers: (_, __, { dataSources }) => {
return dataSources.userAPI.getAllUsers();
}
}
用户API:
getAllUsers() {
const params = {
TableName: 'Users',
Select: 'ALL_ATTRIBUTES'
};
return new Promise((resolve, reject) => {
dynamodb.scan(params, function(err, data) {
if (err) {
console.log('Error: ', err);
reject(err);
} else {
console.log('Success');
resolve(data.Items);
}
});
});
}
查询:
query getAllUsers{
getAllUsers{
email
}
}
由于我的电子邮件是一个字符串,我得到的错误是“字符串不能代表值”。
【问题讨论】:
-
输入 setInput { 电子邮件:字符串! } getAllUsers(输入:setInput):[用户]
-
请告诉我你想要什么?您是否想要具有电子邮件地址或其他值等条件的用户对象
-
@MaheshBhatnagar 我希望查询返回一组用户电子邮件。不需要输入,因为我正在尝试返回所有这些,所以我没有设置任何条件
-
请写下查询 getAllUsers{ getAllUsers{ User[email] } }
-
那行不通,不能在查询中包含 []。现在它给了我语法错误