带有外部XML供稿的盖茨比createPages

时间:2020-04-05 19:06:58

标签: javascript node.js gatsby

我很好奇,即使有可能。 我尝试获取一个REST API,它是一个XML提要。 这是我的gatsby-node文件

const path = require(`path`);
const xml2js = require('xml2js');
const XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

exports.createPages = ({ actions }) => {
  const { createPage } = actions;
  const cdTemplate = path.resolve(`src/templates/cd.jsx`);
  const cdArray = [];
  return new Promise((resolve, reject) => {

  /* I WANT TO CREATE A PAGE FOR EACH CD */
  const url = 'https://www.w3schools.com/xml/cd_catalog.xml';
  let xhr = new XMLHttpRequest();
  xhr.open('GET', url, true);
  xhr.onload = () => {
      if (this.readyState === 4 && this.status === 200) {
        const { parseString } = xml2js;
        parseString(this.responseText, function(err, result) {
          cdArray.push(result)
        })
      }

  xhr.onerror = () => reject(xhr.statusText);
  xhr.send();

  let pages;
  cdArray.forEach(cd => {
    pages = createPages({path: `${cd.title}`, component: cdTemplate})
  })

  resolve(pages);
};

当我运行gatsby develop时会发生什么,那就是它刚加载到终端中的createpages...下面。 是否可以从外部xml提要构建页面?

0 个答案:

没有答案