соединение содержательной CMS со страницей gatsby - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь подключить контент и Гэтсби для блога.

const path = require('path');

exports.createPages = ({ graphql, boundActionCreators }) => {
  const { createPage } = boundActionCreators;
  return new Promise((resolve, reject) => {
    const blogPostTemplate = path.resolve('src/templates/blog-post.js');
    resolve(
      graphql(`
        {
          allContentfulBlog(limit: 100) {
            edges {
              node {
                id
                slug
              }
            }
          }
        }
      `).then(result => {
        if (result.errors) {
          reject(result.errors);
        }
        result.data.allContentfulBlog.edges.forEach(edge => {
          createPage({
            path: edge.node.slug,
            component: blogPostTemplate,
            context: {
              slug: edge.node.slug
            }
          });
        });
        return;
      })
    );
  });
};

Это то, что я написал в gatsby-node.js. Когда я запускаю npm run development, выдается сообщение об ошибке: «TypeError: Невозможно прочитать свойство allContentfulBlog из неопределенного». Я не уверен, как мне это исправить. У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 11 октября 2018

Я столкнулся с теми же трудностями, я предполагаю, что вы следовали этому учебнику по YouTube от khaled и попробуйте проверить его, используя стандартный шаблон блога по умолчанию, например:

enter image description here

Убедитесь, что вы используете ПРАВИЛЬНОЕ contentModelName при записи сообщения allContentful {contentModelName} . При использовании примера блога по умолчанию для содержательного заголовка отображается как «Запись блога». Просто измените его с «Поста блога» на «Блог», и все должно работать нормально, если вы выполнили шаги Халеда и добавили исправление «Новое обещание» (которое, как я вижу, вы уже сделали).

enter image description here

Удачи!

...