【问题标题】:Best way for splitting GraphQL schema into different modules in express-graphql?将 GraphQL 模式拆分为 express-graphql 中不同模块的最佳方法?
【发布时间】:2020-07-30 14:49:04
【问题描述】:

我是 QraphQL 的新手,我在 apollo-server 中找到了一些模块系统的最佳实践,但我找不到 express-graphql 的任何内容!

我使用的是GraphQLSchema 而不是buildSchema。当我试图将我的代码拆分成不同的模块时,它会陷入 NodeJs 循环依赖错误(返回空对象)。

作为 GraphQL 专家,您推荐哪一位? apollo-server 还是 express-graphql?如果你推荐express-graphql,你推荐哪种方法? GraphQLSchemabuildSchema?

以及为每一种方法拆分我的架构的最佳方法是什么?

【问题讨论】:

  • 使用GraphQLSchema 应该没问题。重要的是,如果您在类型系统中进行递归,则将递归类型放在一个 thunk(不带参数的函数)中,就像两边的 type: () => RecursiveType 一样。现在这种类型可以在定义期间未定义。
  • 如果你不使用 ES 模块但 require 它可能会更棘手。在这里,您必须引用整个模块并避免提前解构:const rec = require('RecursiveType')type: () => rec.RecursiveType
  • @Herku 但问题就在这里!我得到了空对象,但我没有使用递归类型,我正在使用 thunk!但我仍然在 graphiql 中遇到空对象错误
  • 那么,这似乎是一个与GraphQL无关的问题,与Node.js的模块解析算法有关。如果没有你准确地分享你如何导入文件和你的文件结构,我想我不能帮助你:(

标签: javascript node.js graphql apollo-server express-graphql


【解决方案1】:

使用 apollo-server-express,帮助我完成了很多类似这样的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-30
    • 2020-02-23
    • 2019-04-22
    • 1970-01-01
    • 2022-01-19
    • 2021-02-05
    • 2017-04-16
    • 2018-03-15
    相关资源
    最近更新 更多