Nodejs CompanyId не отображается в журнале консоли

Я просто работал над связью компаний с пользователями. Я создаю новое поле компании для типа пользователя и сказал, что оно будет иметь тип CompanyType,

Следующим моим шагом было определение функции разрешения для этого свойства, чтобы GraphQL знал, как найти компанию, связанную с данным пользователем.

Поэтому моя цель здесь - взять пользователя и найти связанную с ним компанию. Я хочу научить GraphQL ходить от пользователя к компании.

Вот код, который я написал:

const graphql = require('graphql');
const axios = require('axios');
const { GraphQLObjectType, GraphQLString, GraphQLInt, GraphQLSchema } = graphql;

const CompanyType = new GraphQLObjectType({
  name: 'Company',
  fields: {
    id: { type: GraphQLString },
    name: { type: GraphQLString },
    description: { type: GraphQLString }
  }
});

const UserType = new GraphQLObjectType({
  name: 'User',
  fields: {
    id: { type: GraphQLString },
    firstName: { type: GraphQLString },
    age: { type: GraphQLInt },
    company: {
      type: CompanyType,
      resolve(parentValue, args) {
        console.log(parentValue, args);
      }
    }
  }
});

const RootQuery = new GraphQLObjectType({
  name: 'RootQueryType',
  fields: {
    user: {
      type: UserType,
      args: { id: { type: GraphQLString } },
      resolve(parentValue, args) {
        return axios
          .get(`http://localhost:3000/users/${args.id}`)
          .then(res => res.data);
      }
    }
  }
});

module.exports = new GraphQLSchema({
  query: RootQuery
});

Мое ожидание с console.log(parentValue, args); должен был получить этот вывод в консоли:

`{ id: '23', firstName: 'Bill', age: 20, companyID: '1' } {}`

после того, как я перешел на GraphiQL и нажал кнопку воспроизведения, запрашивая это:

{
    user(id: "23") {
    firstName
    company {
      id
    }
  }
}

Вместо этого я получил вывод в консоли:

{ id: '23', firstName: 'Bill', age: 20 } {}

Я не уверен, почему мне не удалось обучить GraphQL тому, как получить эти данные, чтобы заполнить свойство этой компании функцией разрешения. Пожалуйста помоги.

0 ответов

Другие вопросы по тегам