在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。