javascript - 页面构建后如何将页面的 URL 从 Gatsby 发送回 Strapi
问题描述
首先总结一下:我想知道如何将页面的 URL 从 Gatsby 发送回 Strapi,以便用户在创建页面时可以在不可编辑的字段中看到它。
我试图弄清楚在页面构建完成后是否可以改变 Strapi 中的字段。
我正在生成 50-60 个登录页面,在它们完成构建后会获得自己的路径。
例如:
https://test.com/newly-generated-page
我想要做的是每次用户创建新页面并将其分配给数据库中的该页面时,我想将该路径发送回 Strapi,以便用户可以在“页面路径”字段中看到它。
所以在 Strapi 中会有这样的东西:
页面路径:https ://test.com/newly-generated-page
一种选择是向 React 页面模板内的端点发出 Axios PUT 请求,但是每次页面呈现时都会调用该 API。
其他选项听起来更好 - 在 Gatsby 完成构建该页面后立即执行。
使用 GQL 获取所有登录页面路径的列表(就像我在下面的代码中所做的那样)并将该信息从 Gatbsy 发送回 Strapi(该部分尚未完成)。
我已经尝试通过 gatsby-node.js 实现它,但我似乎无法找到解决方案。
我已经在 gatsby-node.js 中使用 Gatsby 的 onPostBuild API 尝试过类似的操作,我设法获得了所有路径的列表,但我不确定这是否是正确的做法:
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 页面之后,我得到了所有页面路径的列表 - 我需要使用 API PUT 请求将它们发送回 Strapi 并将其分配给我上面提到的 Strapi 字段.
有人对此有任何想法吗?
我猜有 2 个选项 - Axios PUT 请求或某种突变
解决方案
推荐阅读
- checkbox - 如何在 Yii2 上的复选框中添加 onchange 侦听器以在更改时提交表单
- python-3.x - 杀死独立的python线程
- matlab - 在使用 RANSAC 算法之前,我们如何消除不属于目标区域的特征?
- javascript - 边缘、悬停和单击
- excel - xlUp - 选定值 1 - 和 xlDown - 选定值 4121 - vba fordrop downlist 而不是 -12
- java - 在组归约上按键触发嵌套结构的错误序列化
- html - Flexbox row-reverse 打破 IE 11 上的对齐项
- unit-testing - 为什么我不能在 jest.Mock 中模拟一个函数(必须在 spyOn 上使用 .mockImplementation)?
- java - Nuxeo 与 Spring Boot 的集成
- c# - Unity C# 碰撞