GraphQL Mongoose承诺最佳实践

使用GraphiQL,我可以使用以下命令更新用户(1)。 我能够返回实际用户与服务(3)。

更新后有更简单/更紧凑的方式来返回用户吗? (看到创build用户有多容易)。

(1)GraphiQL突变命令变异{updateUser(id:“1”,firstName:“Bob”){firstName}}

(2)突变:

const mutation = new GraphQLObjectType({ updateUser: { type: UserType, args: { id: { type: new GraphQLNonNull(GraphQLString) }, firstName: { type: GraphQLString }, age: { type: GraphQLInt }, companyId: { type: GraphQLString } }, resolve(parentValue, args){ return UserService.updateUser(args); } }, }) 

(3)服务:

 function updateUser(args) { var {id} = args; return User.findOne({id}) .then(user => { if(!user){throw new Error('No user found')} return User.update({id}, args) .then(() => { return User.findOne({id}) }) }) }, function addUser(args) { const user = new User(args); return user.save(args); } 

假设你正在使用mongoose

 function updateUser(args) { var {id} = args; return await User.findOneAndUpdate({ id }, args, { new: true }); },