GraphQL - управляющие элементы массива - PullRequest
1 голос
/ 23 марта 2020

Я хотел бы отобразить некоторую информацию о членах, но я не знаю, как разрешить массив полей «время». Это массив, потому что он показывает время входа в систему. Что мне делать?
Я использовал GraphQLString, но я знаю об этом плохом решении.

Итак, я получаю сообщение об ошибке:

"message": "String cannot represent value: [\"12:08\"]",

Вот схема. js

const axios = require("axios");

const {
  GraphQLObjectType,
  GraphQLString,
  GraphQLList,
  GraphQLSchema
} = require("graphql");

const memberType = new GraphQLObjectType({
  name: "Member",
  fields: () => ({
    nick: {
      type: GraphQLString
    },
    name_and_surname: {
      type: GraphQLString
    },
    time: {
      type: GraphQLString
    }
  })
});


//Root Query
const RootQuery = new GraphQLObjectType({
  name: "RootQueryType",
  fields: {
    users: {
      type: new GraphQLList(memberType),
      description: "List of members",
      resolve(parent, args) {
        return axios
          .get("http://25.98.140.121:5000/data")
          .then(res => res.data);
      }
    }
  }
})

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

А вот JSON

[
    {
        "time": [
            "12:08"
        ],
        "nick": "Cogi12",
        "name_and_surname: "John Steps"
    },
    {
        "time": [
            "12:16"
        ],
        "nick": "haris22",
        "name_and_surname": "Kenny Jobs"
    },
    {
        "time": [
            "12:07",
            "12:08",
            "12:17",
            "12:19",
            "12:45",           
            "13:25"
        ],
        "nick": "Wonski",
        "name_and_surname": "Mathew Oxford"
    }
]

1 Ответ

1 голос
/ 23 марта 2020

вы можете использовать GraphQLList вместе с GraphQLString для time типа, подобного этому,

const memberType = new GraphQLObjectType({
  name: "Member",
  fields: () => ({
    nick: {
      type: GraphQLString
    },
    name_and_surname: {
      type: GraphQLString
    },
    time: {
      type: new GraphQLList(GraphQLString)
    }
  })
});
...