Gatsby createPages с GraphQL возвращает Object: нулевой прототип, когда Graphiql возвращает строку - PullRequest
1 голос
/ 24 апреля 2020

Я настраиваю createPages в Гэтсби, используя слаг, извлеченный из Graphql из Strapi.

Вот мой запрос:

query {
      allStrapiPosts {
        nodes {
          slug
        }
      }
    }

GraphiQL возвращает:

{
  "data": {
    "allStrapiPosts": {
      "nodes": [
        {
          "slug": "/pizza-struggles-today"
        },
        {
          "slug": "/raining-in-paradise"
        },
        {
          "slug": "/blog-title"
        }
      ]
    }
  }
}

My gatsby- node.js:

const path = require("path")

exports.createPages = async ({ graphql, actions }) => {
  const { createPage } = actions

  const { data } = await graphql(`
    query {
      allStrapiPosts {
        nodes {
          slug
        }
      }
    }
  `)
  console.log(data)

  data.allStrapiPosts.nodes.forEach(({ node }) => {
    createPage({
      path: `blog${node.slug}`,
      component: path.resolve("./src/Templates/Post-Template.js"),
      context: {
        slug: node.slug,
      },
    })
  })
}

Вот ошибки из терминала:

[Object: null prototype] {
  allStrapiPosts: [Object: null prototype] {
    nodes: [
      [Object: null prototype],
      [Object: null prototype],
      [Object: null prototype]
    ]
  }
}

 ERROR #11321  PLUGIN

"gatsby-node.js" threw an error while running the createPages lifecycle:

Cannot read property 'slug' of undefined

  17 |   data.allStrapiPosts.nodes.forEach(({ node }) => {
  18 |     createPage({
> 19 |       path: `blog${node.slug}`,
     |                         ^
  20 |       component: path.resolve("./src/Templates/Post-Template.js"),
  21 |       context: {
  22 |         slug: node.slug,

File: gatsby-node.js:19:25



  TypeError: Cannot read property 'slug' of undefined

  - gatsby-node.js:19
    /Users/jeffstahlnecker/Developer/mxc-blog/gatsby-node.js:19:25

  - Array.forEach

  - gatsby-node.js:17 Object.exports.createPages
    /Users/jeffstahlnecker/Developer/mxc-blog/gatsby-node.js:17:29

  - task_queues.js:94 processTicksAndRejections
    internal/process/task_queues.js:94:5


failed createPages - 0.046s

Мои запросы в других местах в Гэтсби работают хорошо. Например, у меня есть аналогичный запрос, создающий список сообщений в блоге, который работает без проблем.

Потратил несколько часов, пытаясь устранить эту проблему прошлой ночью. Приветствуется любая помощь.

Из gastby-config. js:

{
      resolve: `gatsby-source-strapi`,
      options: {
        apiURL: `https://cms.mxc.org:443`,
        queryLimit: 1000, // Default to 100
        contentTypes: [`posts`],
        //If using single types place them in this array.
        // singleTypes: [`home-page`, `contact`],
        // Possibility to login with a strapi user, when content types are not publically available (optional).
        loginData: {
          identifier: "",
          password: "",
        },
      },
    },
...