0

こんにちは、es6 の組み合わせで GraphQl を使用しています。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')
                        });
                    }
                })
            })           
        }
    }
4

1 に答える 1

2

UserTypeフィールドの型として宣言しremoveUserます。明らかに、文字列'User removed successfully'は UserType ではありません。文字列型です。

また、削除操作が成功した場合はresolve、 ではなく Promiseを呼び出す必要があります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')
                    });
                }
            })
        })           
    }
}
于 2015-12-09T19:06:47.547 に答える