У меня есть много ко многим ассоциациям, модели - Decks и Tag.Я в состоянии console.log строка JSON с обоими объектами, но я не уверен, как настроить мою схему и преобразователь так, чтобы они возвращались как в одном запросе вместе, так и в настоящее время получают ноль.Я использую GraphQL с Sequelize на сервере Apollo, с PostgreSQL в качестве базы данных.Какой правильный метод для запроса этой взаимосвязи в GraphQL, я полагаю, я не возвращаю данные правильно для GraphQL, чтобы прочитать его?
Модели
Deck.belongsToMany(models.Tag, {
through: models.DeckTag,
onDelete: "CASCADE"
});
Tag.associate = models => {
Tag.belongsToMany(models.Deck, {
through: models.DeckTag,
onDelete: "CASCADE"
});
Схема для колод
export default gql`
extend type Query {
decks(cursor: String, limit: Int): DeckConnection!
deck(id: ID, deckname: String): Deck!
decksWithTags: [Deck!]!
}
extend type Mutation {
createDeck(deckname: String!, description: String!): Deck!
deleteDeck(id: ID!): Boolean!
}
type DeckConnection {
edges: [Deck!]!
pageInfo: DeckPageInfo!
}
type DeckPageInfo {
hasNextPage: Boolean!
endCursor: String!
}
type Deck {
id: ID!
description: String!
createdAt: Date!
user: User!
cards: [Card!]
}
`;
Resolver в вопросе
decksWithTags: async (parent, args, { models }) => {
return await models.Deck.findAll({
include: [models.Tag]
}).then(tags => {
console.log(JSON.stringify(tags)); //able to console.log correctly
});
},
Сокращенный образец Console.logged JSON String
[
{
"id":1,
"deckname":"50 words in Chinese",
"description":"Prepare for your immigration interview",
***
"userId":1,
"tags":[
{
"id":1,
"tagname":"Chinese",
***
"decktag":{
***
"deckId":1,
"tagId":1
}
},
{
"id":2,
***
{
"id":2,
"deckname":"English",
***
Я ожидаю получить результат на площадке GraphQL, похожий на строку JSON.