javascript - "Type RootQueryType must define one or more fields."}

标签 javascript express graphql graphql-js express-graphql

尝试让 GraphQL 与 JavaScript 配合使用。不知道我的错误在哪里。

我的代码

const graphql = require('graphql');
const _ = require('lodash');
const {
  GraphQLObjectType,
  GraphQLString,
  GraphQLInt,
  GraphQLSchema
} = graphql;
const users = [
  { id: "23", firstName: "Bill", age: 20},
  { id: "47", firstName: "Sam", age: 21}
];
const UserType = new GraphQLObjectType({
  name: 'User',
  fields: {
    id: {type: GraphQLString},
    firstName: {type: GraphQLString},
    age:{type: GraphQLInt}
  }
});
const RootQuery = new GraphQLObjectType({
  name: 'RootQueryType',
  fields: {
    user: {
      type: UserType,
      args: { id: { type: GraphQLString } },
      resolve(parentValue, args) {
         return _.find(users, { id: args.id });
      }
    }
  }
});
module.exports = new GraphQLSchema ({
  query: RootQuery
});

我正在获取

{ "errors": [ { "message": "Type RootQueryType must define one or more fields." } ] }

enter image description here

为什么不工作?

最佳答案

你忘记使用箭头函数

const UserType = new GraphQLObjectType({
  name: 'User',
  fields:()=>( {
    id: {type: GraphQLString},
    firstName: {type: GraphQLString},
    age:{type: GraphQLInt}

});

关于javascript - "Type RootQueryType must define one or more fields."},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49710717/

相关文章:

javascript - 如何在 Node.js 中创建 Get 请求以从 json 获取特定对象?

graphql - Cypress 没有看到 graphql 请求

swift - 如何从 Apollo iOS Closure 中获取值(value)?/How to "wrap"a closure in a function?

graphql - 如何使用 graphql 更新集合中的所有记录

javascript - 单击无需重新加载页面

node.js - 确保 Express 应用程序在每次 Mocha 测试之前运行

javascript - 在 JavaScript 中将字符串转换为整数数组,反之亦然

javascript - Twilio sendMessage 未发送到数组中的所有值

javascript - 如何在不覆盖 javascript 中的所有其他内容的情况下动态地将段落添加到文档中?

javascript - 如何减慢 JavaScript 循环