作为我正在进行的训练营课程的一部分,我正在学习构建Monfulose,GraphQL和NodeJs的Restful API。
这是我的代码
resolve (parent, args) {
let books = new book({
name: args.name,
genre: args.genre,
authorName: args.authorName
})
let author = new Author({
name: args.authorName
})
book.find(
{
name: args.name
}, function(error, results) {
if (results.length == 0 ) {
Author.find(
{
name: args.authorName
},
function (err, result) {
if (result.length == 0) {
author.save()
}
})
}
books.save()
})
return books
}
现在,尽管可行,但问题是书籍和作者在GraphQL查询中以及在运行查询时都链接在一起。
将整个故事部分放在一边。当我的猫鼬中的操作结束时(因为猫鼬是异步的),我想归还图书(或者说我想归还books.save())
我愚蠢地想到最后要做这样的事情
books.save()
}).then(() => {
return books
})
}
,但是在这里退货是在返回承诺而不是解决方案。
问题:MongoDB操作结束后如何返回resolve? (或与MongoDB同步)
答案 0 :(得分:0)
例如:const books = await book.find({name: args.name})
将返回书籍数组或null