schema.graphql 与 buildSchema()

Posted

技术标签:

【中文标题】schema.graphql 与 buildSchema()【英文标题】:schema.graphql vs. buildSchema() 【发布时间】:2017-11-08 11:36:35 【问题描述】:

按照 Relay Modern 文档,我首先使用 buildSchema() 函数并将我的 schemarootValue 放在 javascript 文件中并在需要时使用它。

后来我发现relay-compiler需要一个JSON或者.graphql格式的模式文件;所以我在schema.graphql 中复制了我的架构,一切都按预期工作。

为了避免在两个地方维护我的架构,我可以读取 schema.graphql 文件并将其传递给 buildSchema() 函数,它应该可以工作,但我想知道这是否是正确的方法,或者是否有更好的方法它?有什么办法可以完全避免使用buildSchema() 函数而完全依赖schema.graphql

【问题讨论】:

【参考方案1】:

这是正确且必需的方法。 您无法避免将 buildSchema 函数与您的 .graphql 文件一起使用;但你可以在 JavaScript 中构建完整的模式 - see bottom of this page。

不过,我建议坚持使用模式语言表示法。

【讨论】:

只是为了澄清,您是说从 schema.graphql 读取并将其传递给 buildSchema 函数是正确的方法,对吗? 是的,正是 ;)

以上是关于schema.graphql 与 buildSchema()的主要内容,如果未能解决你的问题,请参考以下文章

AWS-LAMBDA:没有这样的文件或目录,打开 './src/graphql/schema.graphql'

importSchema GraphQL 错误:ENOENT:没有这样的文件或目录,打开“./schema.graphql”

如何为现有的 graphql-schema 创建动态文档?

使用 Apollo Server 时如何生成 schema.graphql 文件?

将内容类型导入 Meteor 中的 schema.graphql

我无法在 typeDefs 中导入 schema.graphql 文件:找不到以下指针的任何 GraphQL 类型定义: