Gatsby / GraphQL中的可选查询

时间:2019-07-12 10:31:41

标签: graphql gatsby

我有一个内容丰富的盖茨比网站,初始页面构建GraphQL如下所示:

{
    allContentfulProduct {
        edges {
            node {
                slug
                contentfulid
            }
        }
    }
}

在使用预览API时,这很好用,但是在使用生产API时,它会失败,除非我发布了至少1个Product条目:

There was an error in your GraphQL query:

Cannot query field "allContentfulProduct" on type "Query". Did you mean ... [suggested entry names] ?

我非常确定,当我发布Product时,一切都会按预期进行,但是有什么方法可以使此查询成为可选查询。该查询应返回零结果,因此将不会创建Product页(如果没有发布Product条目,则会得到预期结果)

1 个答案:

答案 0 :(得分:0)

尝试将其添加到您的gatsby-node.js文件中并对其进行处理。

exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions
  const typeDefs = `
       type allContentfulProduct implements Node{
       slug: String,
       contentfulid: String
  }`