簡體   English   中英

GraphQL貓鼬承諾最佳實踐

[英]GraphQL Mongoose promise best practices

使用GraphiQL,我可以使用以下命令(1)更新用戶。 我可以通過服務(3)返回實際用戶。

更新后有沒有更簡單/更緊湊的方式來返回用戶? (可以看到創建用戶時有多么容易)。

(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 });
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM