GraphQL: Rootquery возвращает null

Я хочу иметь корневой запрос, который возвращает каждую строку в моей таблице. Но в настоящее время, когда я вызываю этот rootquery, я получаю только null. Но один из моих корневых запросов, который возвращает только одну строку с определенным идентификатором, работает. Так где я ошибаюсь?

Rootquery's:

Это работает

aanvraag:{
        type: AanvraagType, 
        args:{id: {type: GraphQLID}},
        resolve(parentValue, args){
            const query = `SELECT * FROM aanvraag where id=${args.id}`;
            return db.conn.one(query)
                .then(data => {
                    return data;
                })
                .catch(err => {
                    return 'Error is: ', err
                });
        }
    },

Это не работает

   aanvragen:{
        type: AanvraagType,
        resolve(parentValue, args){
            const query = 'SELECT * from aanvraag';
            return db.conn.many(query)
                .then(data => {
                    return data;
                })
                .catch(err => {
                    return 'Error is: ', err
                });
        }
    }

Это весь файл, если он кому-то нужен:

const graphql = require('graphql');
const pgp = require('pg-promise')();
const axios = require('axios');
const db = {}
var cn = {
    host: 'localhost', // server name or IP address;
    port: 5432,
    database: 'admin',
    user: 'admin',
    password: 'admin123'
};

db.conn = pgp(cn);

const {
    GraphQLObjectType,
    GraphQLID,
    GraphQLString,
    GraphQLSchema
} = graphql;


const TeamlidType = new GraphQLObjectType({
    name: 'Teamlid',
    fields: {
        id: { type: GraphQLID },
        email: { type: GraphQLString },
        naam: { type: GraphQLString }
    }
})

const ProjectType = new GraphQLObjectType({
    name: 'Project',
    fields:{
        id: {type: GraphQLID},
        naam: { type: GraphQLString },
        type: { type: GraphQLString },
        lead_naam: { type: GraphQLString },
        lead_email: { type: GraphQLString },
        teamlid:{
            type: TeamlidType,
            resolve(parentValue, args){
                console.info(parentValue.id);
                const query = `SELECT * FROM teamlid WHERE project_id=${parentValue.id}`;
                return db.conn.many(query)
                .then(data => {
                   return data;
                })
                .catch(err => {
                   return 'The error is', err;
                });
            }
        }
    }
})

const AanvraagType = new GraphQLObjectType({
    name: 'Aanvraag', 
    fields:{
        id: {type: GraphQLID},
        naam: { type: GraphQLString },
        email: { type: GraphQLString },
        divisie: { type: GraphQLString },
        afdeling: { type: GraphQLString },
        team: { type: GraphQLString },
        project:{
            type: ProjectType,
            resolve(parentValue, args){
                const query = `SELECT * FROM project WHERE aanvraag_id=${parentValue.id}`;
                return db.conn.one(query)
                .then(data => {
                   return data;
                })
                .catch(err => {
                   return 'The error is', err;
                });
            }
        }
    }
})

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
        teamlid: {
            type: TeamlidType,
            args: { id: { type: GraphQLID } },
            resolve(parentValue, args) {
                const query = `SELECT * FROM teamlid WHERE id=${args.id}`;
                return db.conn.one(query)
                    .then(data => {
                        return data;
                    })
                    .catch(err => {
                        return 'The error is', err;
                    });
            }
        },
        aanvraag:{
            type: AanvraagType, 
            args:{id: {type: GraphQLID}},
            resolve(parentValue, args){
                const query = `SELECT * FROM aanvraag where id=${args.id}`;
                return db.conn.one(query)
                    .then(data => {
                        return data;
                    })
                    .catch(err => {
                        return 'Error is: ', err
                    });
            }
        },
        project:{
            type: ProjectType, 
            args:{id: {type: GraphQLID}},
            resolve(parentValue, args){
                const query = `SELECT * FROM project where id=${args.id}`;
                return db.conn.one(query)
                    .then(data => {
                        return data;
                    })
                    .catch(err => {
                        return 'Error is: ', err
                    });
            }
        },
        aanvragen:{
            type: AanvraagType,
            resolve(parentValue, args){
                const query = 'SELECT * from aanvraag';
                return db.conn.many(query)
                    .then(data => {
                        return data;
                    })
                    .catch(err => {
                        return 'Error is: ', err
                    });
            }
        }
    }
})

module.exports = new GraphQLSchema({
    query: RootQuery,
    mutation
})
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я уже нашел свой ответ. Мне пришлось обернуть «aanvraag» в GraphQLList. Итак, это сработает:

   aanvragen:{
        type: GraphQLList(AanvraagType),
        resolve(){
            const query = 'SELECT * from aanvraag';
            return db.conn.many(query)
                .then(data => {
                    return data;
                })
                .catch(err => {
                    return 'Error is: ', err
                });
        }
    }

Я новичок в GrapQL, но надеюсь, что это поможет кому-то в будущем.

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