Javascript 我如何使用';全部';要与Gatsby.js中的文件系统路由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},但我不确定这

我希望与Gatsby.js合作,从私有GraphQLAPI中的集合生成页面。文件系统路由API似乎总是使用“全部”收集请求来生成这些请求(
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自定义节点,那么第二种方法可能适合您的需求