[英]how to return new record from graphql mutation instead of null
我通读了apollo-server-tutorial,并尝试仅使用mongodb-而不使用sqllite复制它。 我来自流星,所以我正在学习异步和猫鼬。
我对addAuthor()的修改可以正常工作(我在数据库中看到一条新记录),但是graphiql返回null。 如何获得它返回期望的字段?
mutation {
addAuthor(firstName: "falieson", lastName:"p") {
_id
firstName
lastName
}
}
{
"data": {
"addAuthor": null
}
}
架构: https : //github.com/Falieson/apollo-server-tutorial-only-mongodb/blob/master/data/schema.js#L39
解析器: https : //github.com/Falieson/apollo-server-tutorial-only-mongodb/blob/master/data/resolvers.js#L38
猫鼬: https : //github.com/Falieson/apollo-server-tutorial-only-mongodb/blob/master/data/models/mongoose.js#L51
型号: https : //github.com/Falieson/apollo-server-tutorial-only-mongodb/blob/master/data/models/index.js#L7
我必须让猫鼬返回该突变的承诺。 所以我的MongooseModel.create()从
const record = new this.collection(args)
return record.save(cb)
使用Promise
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)
}
}
我的突变根本不需要改变,但是我的装置生成器也必须更新以使用Promise.then()链。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.