graphql麻烦访问对象中的项目

时间:2018-11-27 07:00:24

标签: graphql graphql-js

我仍在尝试学习graphql,但无法访问数据库中某个对象内的项目。在我的客户端代码中,id和createdAt的数据显示得很好,只是在我添加对象时出现错误:

Expected Iterable, but did not find one for field Users.profile

我不确定我的代码丢失了吗

解析器:

 Query: {
    getUser(root, args, { userId }) {
      const {id } = args;
      const user = User.findOne({
          id
        });

        return user;
    }
  },

模式

const User = `
type User{
 id: String!
 createdAt: Date
 profile: [Profile]
}

type Profile {
 name: String!
 email: String!
}

extend type Query {
  getUser(
    id: String!
  ): User
}

我如何在客户代码中调用它:

const getUser = gql`
  query getUser($id: String!) {
    getUser(id: $id) {
      id
      createdAt
      profile {
        name
        email
      }
    }
  }
`;

这是在MongoDB数据库中的外观:

user{
  _id: "22222"
  createdAt: 11/22/2018
  profile:{
    name: "Chris"
    email: "chris@emample.com"
  }
}   `

1 个答案:

答案 0 :(得分:0)

以防万一将来对某人有帮助,我不得不将对象设置为JSON才能使其正常工作。

const User = `
type User{
 id: String!
 createdAt: Date
 profile: JSON
}

extend type Query {
  getUser(
    id: String!
  ): User
}