网页建立后,如何将网页的网址从盖茨比发送回Strapi

时间:2020-11-11 17:48:59

标签: javascript graphql gatsby strapi

首先总结一下:我想知道如何从Gatsby将页面的URL发送回Strapi,以便用户在创建页面时可以在不可编辑的字段中看到它。

我试图找出在页面构建完成后是否可以在Strapi中对字段进行突变。

我正在生成50-60个着陆页,它们完成构建后会得到自己的路径。

例如:

https://test.com/newly-generated-page

我想做的是,每次用户创建新页面并将其分配给数据库中的该页面时,我都希望将该路径发送回Strapi,以便用户可以在“页面路径”字段中看到它。 / p>

因此在Strapi中将有类似的内容:

页面路径https://test.com/newly-generated-page

其中一种选择是对React页面模板中的那个端点发出Axios PUT请求,但是每次页面渲染时都会调用该API。

其他选项听起来更好-在盖茨比(Gatsby)构建完该页面后立即执行。

获取具有GQL的所有着陆页路径的列表(就像我在下面的代码中所做的一样),并将该信息从Gatbsy发送回Strapi(那部分还没有完成)。

我尝试通过gatsby-node.js实现它,但似乎找不到解决方案。

我已经在gatsby-node.js中使用Gatsby的onPostBuild API尝试了类似的方法,我设法获得了所有路径的列表,但我不确定这是否是正确的方法:< / p>

exports.onPostBuild = ({ graphql }) => {
const getPagePaths = makeRequest(
  graphql,
    `
    {
      allSitePage {
        nodes {
          path 
          id
        }
      }
    }
    `
  ).then(result => {
    result.data.allSitePage.nodes.forEach(({ path, id }) => {
      console.log(path, id)
    })
  })

  return Promise.all([
    getPagePaths
  ])
}

因此,现在在调用postBuild API并构建了所有的gatsby页面之后,我得到了所有页面PATH的列表-我需要使用API​​ PUT请求将它们发送回Strapi,并将其分配给Strapi字段,如下所示:我在上面提到过。

有人对此有任何想法吗?

我猜有2个选项-Axios PUT请求或某种突变

0 个答案:

没有答案