查询返回错误 "Cannot read properties of undefined (reading 'nodes')"

Query returning error "Cannot read properties of undefined (reading 'nodes')"

我正在尝试对 GatsbyJS 项目中的 return 一行文本和一张图像编写一个页面查询。我将 Gatsby Image 插件与 'gatsby-transformer-sharp' 和 'gatsby-plugin-sharp' 一起使用,但我不断收到一个错误消息,即从查询中编辑的节点 return 未定义。

我的查询如下所示:

query ProjectsPage {
  allMarkdownRemark {
    nodes {
      frontmatter {
        featuredImg {
          childImageSharp {
            fluid{
              ...GatsbyImageSharpFluid
            }
          }
        }
        title
      }
    }
  }
}

给我错误的代码行:

const projects = data.projects.nodes

我的 gatsby-config.js 文件如下所示:

 module.exports = {
   /* Your site config here */
   plugins: [
     'gatsby-transformer-remark',
     'gatsby-transformer-sharp',
     'gatsby-plugin-sharp',
     {
       resolve: `gatsby-source-filesystem`,
       options: {
         name: `projects`,
         path: `${__dirname}/src/projects/`,
        },
      },
      {
        resolve: `gatsby-source-filesystem`,
        options: {
          name: `images`,
          path: `${__dirname}/src/images/`,
         },
       },
   ],
   siteMetadata: {
     title: 'example',
     description: 'web dev portfolio',
     copyright: 'example text'
   },
 }

如果能提供任何帮助,我将不胜感激!

从查询中获取节点的正确方法是:

const projects = data.allMarkdownRemark.nodes

如果您想按目录过滤结果并仅从项目中获取节点,您可以遵循答案之一 并使用类似以下内容:

query ProjectsPage {
 allMarkdownRemark(filter: {fileAbsolutePath: {regex: "/(/projects/)/"}}) {
    nodes {
      frontmatter {
        featuredImg {
          childImageSharp {
            fluid {
              ...GatsbyImageSharpFluid
            }
          }
        }
        title
      }
    }
  }
}