如何在GraphQL中打印自定义消息



你好,我正在使用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')
                    });
                }
            })
        })           
    }
}

最新更新