我有这个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
}
}
它工作得很好',现在我不想通过用户名获取用户, 我想通过他的userName插入他,所以我用了这个
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 })
}
},
这将带回所有属性为null的用户 请帮忙!
答案 0 :(得分:1)
首先,您应该使用listen your_ip:80
仅获得一个用户,findOne
将为您带来该名称的所有用户。如果您愿意的话,也许您的回报应该是find
。
如果它带来了所有属性,则可能是因为您正在查询中要求它们。
另外,您可能在函数上缺少type: GraphQLList(UserType)
和await User.find({ userName })
:
async
检查这是否对您有帮助:)