使用GraphiQL,我可以使用以下命令(1)更新用户。 我能够通过服务返回实际用户(3)。
更新后是否有更简单/更紧凑的方式返回用户? (看看创建用户时有多容易)。
(1)GraphiQL变异命令 变异{ updateUser(id:“1”,firstName:“Bob”){ 名字 } }
(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);
}
答案 0 :(得分:0)
假设您正在使用mongoose
:
function updateUser(args) {
var {id} = args;
return await User.findOneAndUpdate({ id }, args, { new: true });
},