Return ENUM - 不能为非空字段 return null

Return ENUM - Cannot return null for non-nullable field

我正在使用 apollo-server-lambda、Prisma ORM 和 graphql-codegen。

我有一个查询 (getBookById) return 是 BookBook 包含一个名为 BookStatus 的枚举。我希望能够在 playground 的 ENUM 中 return,但出现错误:

Cannot return null for non-nullable field Book.bookStatus.

BookStatus - TypeDef

enum BookStatus {
  OPEN
  DRAFT
  CLOSED
}

图书 - TypeDef

type Book {
  id: ID!
  title: String!
  bookStatus: BookStatus!
}

getBookById - TypeDef

type Query {
  getBookById(getBookByIdInput: GetBookByIdInput): Book
}

已解决:

问题是我使用 Prisma 作为 ORM。 刚拿到新书的时候,正在写代码:

  const foundBook = await prisma.book.findUnique({
    where: {
      id: bookId
    }
  });

问题是这本书是使用以下代码创建的:

  const newBook = await prisma.book.create({
    data: {
      user_id: userId,
      title: title,
      author: author,
      publication_year: publicationYear,
      isbn: isbn,
      photos: photos,
      book_condition: bookCondition,
      exchange_yype: exchangeType,
      book_status: bookStatus,
    },
  });
      
  return newBook;

};

snake_case 和驼峰式混合造成了这个问题。 一旦一切都是驼峰式,问题就解决了。