我正在基于hapi,graphql和mongodb设置节点js环境。我能够连接到mongodb,并使用db mongoose模式在GET / POST路由中检索和显示数据。但是,当将模型传递给graphql的resolver函数时,不会获取数据。请在下面找到我的graphql解析器功能
const resolvers = (shows)=>({
myQuery:{
testFunction(){
return "returned from custom test function";
},
getShowByName: function(_,args){
var out= shows.findOne();
console.log(out); //returning a huge json response instead of proper data
return out={
_id:"5349b4ddd2781d08c09890f3",
title: "test",
version: "test",
showDetails: [{
name: args.showSchemaName,
genre: "test",
lead_actor: "test"
}]
}
;
},
},
myMutation: {
createShow: function(_,args){
return args.showTypeInputDetails.title+","+args.showTypeInputDetails.version;
}
}
});
module.exports = resolvers;
Console.log(out)正在发出一个巨大的json响应,它不是来自mongo db。 json响应确实很大,并且还包含我的连接参数,凭据和其他详细信息,因此,我在此处发布了响应的开头
Query {
_mongooseOptions: {},
_transforms: [],
mongooseCollection:
NativeCollection {
collection: Collection { s: [Object] },
opts:
{ bufferCommands: true,
capped: false,
'$wasForceClosed': undefined },
name: 'shows_details',
collectionName: 'shows_coll',
conn:
NativeConnection {
base: [Object],
collections: [Object],
models: [Object],
config: [Object],
replica: false,
请帮助我理解为什么解析器函数触发findOne()时会出现此响应,而路由函数触发相同函数时会产生正确的结果。
[显示的是我的猫鼬数据库模型]
答案 0 :(得分:0)
为什么不像下面的代码那样尝试。
library(tidyverse)
mget(ls(pattern="USD")) %>%
imap(~ {nm1 <- .y
.x %>%
rename_at(2, ~ nm1) })
});
答案 1 :(得分:0)
我使我的解析器功能异步,并使用await返回数据,从而解决了问题