Javascript 我如何使用';全部';要与Gatsby.js中的文件系统路由API一起使用的集合?
我希望与Gatsby.js合作,从私有GraphQLAPI中的集合生成页面。文件系统路由API似乎总是使用“全部”收集请求来生成这些请求(Javascript 我如何使用';全部';要与Gatsby.js中的文件系统路由API一起使用的集合?,javascript,graphql,gatsby,Javascript,Graphql,Gatsby,我希望与Gatsby.js合作,从私有GraphQLAPI中的集合生成页面。文件系统路由API似乎总是使用“全部”收集请求来生成这些请求(allFile,allSite,allPost,等等) 因为我的数据来自一个单独的API,所以在盖茨比的模式中没有等效的“all”集合,而且我的数据也是由Gatsby source graphql插件在字段中命名的 有没有可能定义我自己的“全部”收藏供盖茨比使用?我想将allFacilities别名为myremoteapi{facilities},但我不确定这
allFile
,allSite
,allPost
,等等)
因为我的数据来自一个单独的API,所以在盖茨比的模式中没有等效的“all”集合,而且我的数据也是由Gatsby source graphql
插件在字段中命名的
有没有可能定义我自己的“全部”收藏供盖茨比使用?我想将allFacilities
别名为myremoteapi{facilities}
,但我不确定这是否可行
如果没有,还有其他方法吗?文件系统路由API是Gatsby(
^2.26.0
)开发的新品牌,用于动态创建页面,删除Gatsby node.js
的GraphQL查询,并在/pages
文件夹中使用语法符号({}
,[]
,()
等)
根据您的用例,您需要通过在“all”关键字前加前缀来推断和修改模式(可能使用createNodeFactory
和createNodeHelpers
,在不确切了解数据模式和结构的情况下,很难猜测示例代码),但其想法是:
const nodeHelpers = createNodeHelpers({
typePrefix: 'Shopify',
createNodeId,
createContentDigest,
})
}
默认情况下,这将作为“all”关键字的前缀,创建一个allShopify
节点,可供文件系统路由API查询和使用
另一方面,还有一种“老”方法:在gatsby node.js
中使用GraphQL,使用createPage
API动态创建页面,使用上下文传递数据(通常是唯一标识符),在模板中,使用另一个查询过滤该唯一值以获取数据(即:在gatsby node.js
文件中,使用slug值查询所有帖子并为每篇帖子动态创建页面(使用createPage
API)。然后,使用上下文传递标识符(slug或标题),并在模板中(不是/pages
作为文件系统路由API)通过此唯一值创建筛选查询以获取帖子数据)
如果您无法使用helpers自定义节点,那么第二种方法可能适合您的需求