0 Вопрос: Средство разрешения вложенных запросов с сервером Apollo, не возвращающим данные

вопрос создан в Thu, May 2, 2019 12:00 AM

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

Я получу список всех пользователей в таблице users, и с идентификатором пользователей я запросю таблицу TCourse, чтобы получить CourseId, затем я буду использовать CourseId для запроса таблицы курсов, чтобы получить заголовок

Я попробовал, но получил взамен

{
  "data": {
    "userty": [
      {
        "tcourses": []
      },
      {
        "tcourses": []
      }
    ]
  }
}

вот код разрешения моих пользователей

export default {
  Query: {
    userty : combineResolvers(
      isAdmin,
        async (parent, { where, offset }, { models }) => {
        console.log(where)
        return await models.User.findAll({
          where: {role: where}, order: [['id', 'DESC']], limit: config.loadteacherLimit, offset: offset
        })
      }
    ),
  },
  User: { 
    tcourses: async (user, args, { models }) => {
      const theTco = await models.TCourses.findAll({
        where: {
          UserId: user.id
        }
      })
      const theCou = await models.Course.findAll({
        where: {
          id: theTco.CourseId
        }
      })
      return theCou
    },
  },
}

вот код моей пользовательской схемы

export default gql`
    extend type Query { 
        userty(where: String, offset: Int): [User!] 
    }
    type User {
        id: ID!
        fullname: String!
        tcourses: [TCourses]
    }
`;

вот мой код схемы TCourse

export default gql`
    extend type Query { 
        tcourses: [TCourses]
    }

    type TCourses{
        id:ID!
        users:[User]
        course:[Course]
    }
`; 

вот мой код схемы курса

export default gql`
    extend type Query { 
        course: [Course]  
    }

    type Course{
        id: ID!
        Title: String
    }    
`;

вот мой код модели tcourses

const tcourses = (sequelize, DataTypes) => {
    const TCourses = sequelize.define('tcourses', {

    }, {
        timestamps: false
    });

    TCourses.associate = models => {
        TCourses.belongsTo(models.Course,{ as: 'Course'})
        TCourses.belongsTo(models.User,{ as: 'User'})
    };
    return TCourses;
};
export default tcourses;

вот код модели моих курсов

const course = (sequelize, DataTypes) => {
const Course = sequelize.define('course', {
    Title: {
        type: DataTypes.STRING,
        validate: {
            notEmpty: {
                args: true,
                msg: 'Enter Course Title'
            }
        },
    },
}, {
    timestamps: false
})
Course.associate = models => {
    Course.belongsTo(models.User, { as: 'Owners'})
    Course.hasMany(models.TCourses,{ foreignKey: 'CourseId'})
};
return Course

  }; 
  export default course

user - код модели моих пользователей

const user = (sequelize, DataTypes) => {
    const User = sequelize.define('user', {    
        id: {
        type: DataTypes.INTEGER,
        autoIncrement: true,
        unique: true,
        primaryKey: true,
        field: 'id'
        },
        fullname: DataTypes.STRING,
    });
    User.associate = models => {
        User.hasMany(models.Course,{ foreignKey: 'OwnersId'})
        User.hasMany(models.TCourses,{ foreignKey: 'UserId'})
    };
    return User;
};
export default user;

Как я могу решить эту проблему? что я делаю не так?

    
- 1
0 ответов                              0                         
источник размещен Вот