【发布时间】:2019-04-06 06:18:53
【问题描述】:
我有这个 RootQuery:
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
user: {
type: UserType,
args: { id: { type: GraphQLID } },
resolve(parent, {id}) {
return User.findById(id)
}
},
然后我会使用这个查询来获取用户:
{
user(id:"5bd78614e71a37341cd2b647"){
id
userName
password
isAdmin
}
}
它工作得很好'现在我不想通过他的 ID 来获取用户, 我想通过他的用户名来获取他,所以我使用了这个
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
user: {
type: UserType,
args: { userName: { type: GraphQLString } },
resolve(parent, {userName}) {
console.log('userName',userName)
return User.find({ userName })
}
},
这将带回所有属性为空的用户 请帮忙!!
【问题讨论】:
-
find返回用户数组,而您的字段需要一个用户对象。您需要使用findOne或返回数组中的第一个元素
标签: graphql apollo react-apollo apollo-client apollo-server