graphql - GatsbyJs - 如何从 Contentful 插件处理空的 graphql 节点

标签 graphql contentful gatsby

我正在 Gatsbyjs 中构建一个站点,该站点通过 gatsby-source-contentful 插件获取信息,但我正在努力解决 graphql 方面的问题。

例如,如果我在 Contentful 中有一个内容模型,其中包含一个字段来覆盖默认描述 - 那么如果没有任何内容使用该内容,如果我尝试将它包含在我的查询中,graphql 会抛出错误。

反正有没有短路graphql查询?

示例

{
  allContentfulPage {
    edges {
      node {
        title
        description {
           description
        }
      }
    }
  }
}

如果不存在带有描述的页面模型,这将中断,但是一旦页面获得描述,它就会起作用。

最佳答案

Gatsby 从 Contentful 中提取数据,然后构建一个内部“模型”,展示来自 Contenful 的数据的样子。 Contentful API 是 REST,但 Gatsby 在内部使用 GraphQL。

如果某个字段在 Contentful 上没有值,则它不会成为 Gatsby 中生成的 GraphQL 查询的一部分。解决方案是在您的记录之一中推送单个值。

关于graphql - GatsbyJs - 如何从 Contentful 插件处理空的 graphql 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47373455/

相关文章:

node.js - 是否存在与 GitHub API v4 一起使用的 Nodejs 库?

javascript - 无法转换/规范化/修改 GraphQL 查询的响应 - Apollo 客户端

graphql - 如何从2个API查询数据

npm - '模块构建失败 : Error: Couldn't find preset "es2015" relative to directory' from newly created gatsby project

javascript - Gatsby 在页面刷新时丢失/消失的 CSS?

javascript - 在 GatsbyJS 上获取 URL 参数

typescript - 为什么在指定类型后我得到 "UnhandledPromiseRejectionWarning: Error: Undefined type error. Make sure are providing an explicit type"?

amazon-web-services - 如何在 amplify-cli 中服务器端排序/排序查询结果

javascript - 动态组件上的 Angular 5 下一个按钮

reactjs - 无法查询类型 "x"上的字段 "y"