gatsby graqpql query rest API只返回一个结果

时间:2018-04-30 09:36:09

标签: rest graphql gatsby

我已经开始使用gatsby和graphQL了,我正在尝试从rest API中获取dat。我能够遍历数据并将其登录到控制台。但是当使用graphQL时,我只得到一个结果。请参阅下面的代码。我很欣赏任何有关我做错事的帮助。

exports.sourceNodes = async ({ boundActionCreators }) => {
 const { createNode } = boundActionCreators;
  console.log(createNode)
 const fetchData = () => axios.get(url)
 const res = await fetchData();
 console.log(res.data);

 res.data.blogArticle.forEach((article, index) => {

  return createNode({
   ...article,
   id: `£{index}`,
   children: [],
   parent: `__SOURCE__`,
   internal: {
    type: `BlogArticle`,
    content: JSON.stringify(article),
    contentDigest: crypto
     .createHash(`md5`)
     .update(JSON.stringify(article))
     .digest(`hex`)
   },
   heading: article.heading,
   subheading: article.subheading,
   content: {
    text: article.content.text,
    videoURL: article.content.videoURL,
    imageURL: article.content.imageURL
   }
  });
 });

 res.data.emptyLegs.forEach((leg, index) => {

  const emptyLegNode = {   

   from: leg.From,
   to: leg.To,
   aircraft: leg.Aircraft,
   seats: leg.Seats,
   date: leg.Date,
   price: leg.Price,

   id: `£{index}`,
   children: [],
   parent: `__SOURCE__`,
   internal: {
    type: `EmptyLegs`,
    contentDigest: crypto
     .createHash(`md5`)
     .update(JSON.stringify(res.data.emptyLegs))
     .digest(`hex`)
   },
  };

  createNode(emptyLegNode);
 });

 return;
};

1 个答案:

答案 0 :(得分:1)

我认为一个简单的拼写错误导致了这个问题。

变化:

return createNode({ id: `£{index}`, 

为:

return createNode({ id: `${index}`, 

并且在空腿节点id中是相同的:${index}

这应该可以解决错误。