我很好奇,即使有可能。
我尝试获取一个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提要构建页面?