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 тому, как получить эти данные, чтобы заполнить свойство этой компании функцией разрешения. Пожалуйста помоги.