Javascript 如何从graphql中返回新记录而不是空记录

Javascript 如何从graphql中返回新记录而不是空记录,javascript,mongodb,mongoose,graphql,apollo-server,Javascript,Mongodb,Mongoose,Graphql,Apollo Server,我通读了apollo服务器教程,并试图只使用mongodb复制它,而不使用sqllite。我来自meteor,所以我正在学习异步和猫鼬 我对addAuthor()的变异工作正常(我在数据库中看到一条新记录),但graphiql返回null。如何让它返回预期字段 mutation { addAuthor(firstName: "falieson", lastName:"p") { _id firstName lastName } } { "data": {

我通读了apollo服务器教程,并试图只使用mongodb复制它,而不使用sqllite。我来自meteor,所以我正在学习异步和猫鼬

我对addAuthor()的变异工作正常(我在数据库中看到一条新记录),但graphiql返回null。如何让它返回预期字段

mutation {
  addAuthor(firstName: "falieson", lastName:"p") {
    _id
    firstName
    lastName
  }
}

{
  "data": {
    "addAuthor": null
  }
}
模式:

解析程序:

猫鼬:


模型:

我需要让猫鼬对突变做出承诺。因此,我的MongooseModel.create()将从

const record = new this.collection(args)
return record.save(cb)
许诺

const record = new this.collection(args)
return new Promise((resolve, reject) => {
   record.save((err, res) => {
      err ? reject(err): resolve(res)
   });
});
使用异步/等待

 async create(obj = {}) {
   const args = {
     ...this.defaultRecord(),
     ...obj
   }
   const record = new this.Collection(args)

   try {
     const savedRecord = await record.save()
     return savedRecord
   } catch (err) {
     handleError(err)
   }
 }

我的变异根本不需要更改,但我的fixtures生成器也必须更新以使用Promise.then()链。

当我console.log返回变异解析程序时,我会得到未定义的结果,但当我console.log返回defaultReturn回调处理程序时,它会在变异解析程序返回后发生。因此,我认为这可能是承诺/异步问题。。。还是会很感激你的帮助