【发布时间】:2020-07-30 14:49:04
【问题描述】:
我是 QraphQL 的新手,我在 apollo-server 中找到了一些模块系统的最佳实践,但我找不到 express-graphql 的任何内容!
我使用的是GraphQLSchema 而不是buildSchema。当我试图将我的代码拆分成不同的模块时,它会陷入 NodeJs 循环依赖错误(返回空对象)。
作为 GraphQL 专家,您推荐哪一位? apollo-server 还是 express-graphql?如果你推荐express-graphql,你推荐哪种方法? GraphQLSchema 或 buildSchema?
以及为每一种方法拆分我的架构的最佳方法是什么?
【问题讨论】:
-
使用
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