首页 > 解决方案 > 预期可迭代,但没有找到一个字段

问题描述

使用 GraphQL 和 SQLite,这是我的查询:

{
book {
  id
  authors {
    name
  }
 }
}

类型:

  type Book {
    id: ID!
    title: String
    actors: [Author!]!
  }
  type Author {
    id: ID!
    name: String
  }

这是我的决心:

const resolvers = {
  Query: {
        book: async (_, __, { db }) => {
      return await db.all('SELECT * FROM books');
    },
  }
};

错误是:

"message": "预期为 Iterable,但没有为字段 Book.authors 找到一个。",

标签: javascriptsqlitegraphql

解决方案


在您的查询解析器中,您只能books从您的 select中解析'SELECT * FROM books'

如果您希望能够查询booksandauthors并且只有一个解析器,则必须返回两个对象,即您必须在解析器中构建并返回完整对象book


推荐阅读