当前位置: 首页 > 知识库问答 >
问题:

Graphql没有按预期解决

曹兴贤
2023-03-14

我正在开发一个graqphqlapi,它通过Mongoose从MongoDB获取数据。现在我遇到的问题是GraphQL不使用查询来解析字段,而是使用字段解析程序,因为没有设置ID,所以字段解析程序无法工作。

TypeDefs:

type Query{      
  getUser(user_id: String!): User
  getGroup(group_id: String!): Group    
}
type Group {
  name: String
  scopes: [Scope]
  id: String
}

解析程序:

Query: {
  getUser: (root,args,context) => {
     console.log(args);
     return getUser(args.user_id);
  },
   getGroup: (root,args,context) => {
     return getGroup(args.group_id);
   }
},
Group: {
  scopes(group){
     return getScopes(group.id);
  },
  name(group){
       return getGroupName(group.id);
  }
},

功能:

exports.getGroup = async (id) => {

const g = await Group.findOne({_id:id});
const scopes = [];
for(let index in g.scopes){
    scopes.push({id: g.scopes[index]});
}
console.log(g.name);
return{
    name: g.name,
    scopes: scopes
};
};
exports.getGroupName = async (id) => {

const g = await Group.findOne({_id:id});
console.log(id);
return g.name;
};

exports.getScopes = async (id) => {

const g = await Group.findOne({_id:id});
const scopes = [];
for(let index in g.scopes){
    scopes.push({id: g.scopes[index]});
}
return scopes;
};

查询:

 query getUserGroup{
      getGroup(group_id:"5b74c537086152554adf818e"){name}           
 }

结果:

{
"data": {
  "getGroup": {
    "name": null
  }
},
"errors": [
  {
    "message": "Cannot read property 'name' of null",
    "locations": [
      {
        "line": 3,
        "column": 5
      }
    ],
    "path": [
      "getGroup",
      "name"
    ],
    "extensions": {
      "code": "INTERNAL_SERVER_ERROR",
      "exception": {
        "stacktrace": [
          "TypeError: Cannot read property 'name' of null",
          "    at _callee2$ (/XXXX/resolver/group.js:20:14)",
          "    at tryCatch (/XXXX/node_modules/regenerator- 
          runtime/runtime.js:65:40)",
          "    at Generator.invoke [as _invoke] 
          (XXXX/node_modules/regenerator-runtime/runtime.js:303:22)",
          "    at Generator.prototype.(anonymous function) [as next] 
          (XXXXX/node_modules/regenerator-runtime/runtime.js:117:21)",
          "    at step (XXXXX/src/resolver/group.js:5:191)",
          "    at XXXX/resolver/group.js:5:361",
          "    at <anonymous>"
      ]
    }
  }
}
]
}

共有1个答案

鲍向笛
2023-03-14

const g=等待组。findOne({u id:id})

"TypeError:无法读取null的属性'name'"

"path": [
  "getGroup",
  "name"
],

你能检查g是否存在吗?

 类似资料:
  • 我正在尝试解析下面的XML文件并基于它创建一个JTree。 “窗口01”将添加到根节点“对象列表”,但“页面01”节点不会显示在“窗口01”节点下。下面给出了使用的源代码。请帮忙!!! 这是主课。编译时不会显示错误或警告。

  • 我在使用R的group_by和SUMMARY函数时遇到了一些问题,我想知道你们是否可以帮我一些忙。我有一张类似的表格: 我试图使用dplyr的group_by和SUMMARY来找到频率列的平均值。下面是我的示例代码: 我所期望的是,一个表格被吐出来,分解按单个类别分组的平均频率,如下所示: 但是,我收到的是一个按类别分组的表,每个类别接收整个表的平均值,如下所示: 有什么线索吗?我应该说我是初学者

  • 我已经配置了log4j2.xml文件,application.log文件将被创建,它应该每天翻转。 但是在JVM中,applicatoin.log文件在10MB之后会翻转,如果翻转三次,第一个文件会被覆盖。也就是说我随时都application.logapplication-2020-10-16.log.zip. 为什么log4j2(v2.13)即使配置为每日,也会每10MB滚动一次文件?任何在l

  • 现在,在我的drools项目中,我在单独的DRL文件中有两组规则,它们由议程组分割。对于议程组“preCheck”,我将该议程组中的每个规则的自动聚焦设置为true。例子: 对于另一个议程组-“default规则”-规则没有设置自动焦点属性。示例: 在通过RESTAPI调用规则时,我还试图通过JSON负载将焦点设置为“preCheck”议程组。例子: 然而,在执行规则时,似乎首先要评估“defau

  • 我有一个自定义案例类异常: 在我的 dao 中,我有一个从数据库中提取对象的方法,该方法返回 future,如果此将来失败,我将抛出我的 RecordNotFoundException 异常: 在另一个方法中,我调用getPerson方法,所以我将恢复添加到另一个方法中,当未来使用RecordNotFoundException失败时,我想返回一些东西: 因此,基本上,我希望当getPerson失败

  • 你知道我错过了什么吗?