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 }); },
- 更新mongoose模式后,新input的字段不会插入已创build的集合中
- mongoose纲要与Mongovalidation器
- $ regex与find()和update()mongoose的工作方式不同
- 如何使用node.js结合基于id(transectionid)的两个集合?
- Mongodb节点驱动2.0。*与Bluebird 2.9。* promisification
- 我是一个完整的新手,我如何学习Node.Js + Express + MongoDB?
- MongoDb从对象属性匹配条件的数组中select对象
- MongoDB插入variables名作为键(Node.JS)
- 不能在html scripttag中将EJSvariables推入数组中?