Уровень данных CMS не доходит до моего блога Gatsby/React

Я использовал локальные файлы.md для слоя данных Gatsby, но теперь мне нужна интеграция с Contentful CMS.

const Promise = require('bluebird')
const path = require('path')

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

return new Promise((resolve, reject) => {
const blogPost = path.resolve('./src/templates/blog-post.js')

resolve(
  graphql(
    `
      {
        allContentfulBlog(limit: 500) {
          edges {
            node {
              id
              slug
            }
          }
        }
      }
    `
  ).then(result => {
    if (result.errors) {
      console.log(result.errors)
      reject(result.errors)
    }
    result.data.allContentfulBlog.edges.forEach(edge => {
      createPage({
        path: edge.node.slug,
        component: blogPost,
        context: {
          slug: edge.node.slug,
        },
      })
    })
    return
   })
  )
 })
}

exports.onCreateNode = ({ node, boundActionCreators, getNode }) => {
  const { createNodeField } = boundActionCreators
}

Это мой файл gatsby-node.js.

Терминал дает:

Ошибка типа: невозможно прочитать свойство 'allContentfulBlog' из неопределенного.

На Contentful.com имя типа контента - Блог.

Я прикрепил скриншот терминала здесь.

Любые намеки на кого-нибудь?

1 ответ

Это выглядит как

Ошибка типа: невозможно прочитать свойство 'allContentfulBlog' из неопределенного.

является результатом

не может запросить поле 'slug' по типу 'ContentfulBlog'

Можете ли вы поделиться своей моделью контента, может быть? Я не знаю, видели ли вы довольный Гэтсби стартер. Он поставляется с моделью контента - так что вы можете посмотреть и там.:)

Другие вопросы по тегам