Javascript 如何从graphql中返回新记录而不是空记录
我通读了apollo服务器教程,并试图只使用mongodb复制它,而不使用sqllite。我来自meteor,所以我正在学习异步和猫鼬 我对addAuthor()的变异工作正常(我在数据库中看到一条新记录),但graphiql返回null。如何让它返回预期字段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": {
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回调处理程序时,它会在变异解析程序返回后发生。因此,我认为这可能是承诺/异步问题。。。还是会很感激你的帮助