你好,我正在使用GraphQl与es6的组合。在从graphql中删除特定记录时,我正在获取已删除记录的详细信息(值),我想打印一些自定义消息,如"记录已删除"。请相应地帮助我。
下面是我的graphQL代码:
removeUser:{
type: UserType,
args: {
_id: {
description: 'The _id of the user',
type: GraphQLString,
},
},
resolve: (obj, {_id}) =>{
return new Promise((resolve, reject) => {
User.findOne({_id:_id},(err,res)=> {
if(err || res == null) {
reject('User was not found')
}
else {
User.remove({_id: _id},(err,result)=>{
err ? reject(err) : reject('User removed successfully')
});
}
})
})
}
}
将UserType
声明为removeUser
字段的类型。显然,字符串'User removed successfully'
不是UserType;它是一个String类型。
此外,如果删除操作成功,您应该在Promise中调用resolve
,而不是reject
。
我认为应该这样做:
removeUser:{
type: GraphQLString,
args: {
_id: {
description: 'The _id of the user',
type: GraphQLString,
},
},
resolve: (obj, {_id}) =>{
return new Promise((resolve, reject) => {
User.findOne({_id:_id},(err,res)=> {
if(err || res == null) {
reject('User was not found')
}
else {
User.remove({_id: _id},(err,result)=>{
err ? reject(err) : resolve('User removed successfully')
});
}
})
})
}
}