GraphQL检查突变的唯一记录

时间:2017-10-26 17:58:14

标签: mongodb reactjs mongoose graphql relay

在GraphQL变异中,如果我尝试创建的记录是唯一的,我如何检查resolve函数?

考虑代码:

const createUser = {
    type: UserType,
    description: 'Creates an user',
    args: {
        data: {
            name: 'user',
            type: new GraphQLNonNull(UserInputType)
        }
    },
    resolve(root, args) {

        let data = args.data;

       UserModel.findByName(data.name);
             ??? How can I return an error here if there is a user with 
             ??? the given name already stored in database ?

        const model = new UserModel(data);
        model.save();
    }
}

我应该将该逻辑保留在GraphQL服务器上还是应该将其保留在数据库层中。如果我将它留给数据库层,如何将数据库错误返回给我的客户端,以便他知道他试图创建一个无效的用户?

我是以下堆栈:服务器上的MongoDB,express,Mongoose,graphql-js,客户端上的ReactJS和Relay。

0 个答案:

没有答案