如何 return 来自 graphql 突变的新记录而不是 null
how to return new record from graphql mutation instead of null
我通读了 apollo-server-tutorial,我试图只用 mongodb 复制它 - 没有 sqllite。我来自流星,所以我正在学习异步和猫鼬。
我对 addAuthor() 的修改工作正常(我在数据库中看到一条新记录)但 graphiql return 为空。我如何将其添加到 return 预期的字段?
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/index.js#L7
我需要 mongoose return 对变异的承诺。所以我的 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/Await
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() 链。
我通读了 apollo-server-tutorial,我试图只用 mongodb 复制它 - 没有 sqllite。我来自流星,所以我正在学习异步和猫鼬。
我对 addAuthor() 的修改工作正常(我在数据库中看到一条新记录)但 graphiql return 为空。我如何将其添加到 return 预期的字段?
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/index.js#L7
我需要 mongoose return 对变异的承诺。所以我的 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/Await
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() 链。