GraphQL.js如何把schema定义单独成一个文件模块?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔接着分析graphql
的nodejs
的代码,本文来实现一个伪需求,就是graphql
定义schema
的时候,如果schema
定义比较大的话(应该行数都不会少),如何把这个schema
数据结构单独成一个文件,这样的目录结构更清晰一些。

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文介绍在nodejs
代码,schema
文件定义单独成文件的方法。本文测试环境:win10
,node@16.14.0
,graphql@16.3.0
,graphql-import-node@0.0.4
。
本文中记载的方法,并不是个太好的方法,仅仅是个伪需求。因为schema
后续都是用.js
代码描述的。所以,这种情况的应用场景也不是很多。
安装graphql-import-node
模块
graphql-import-node
官方地址:
安装姿势:
使用基本姿势:
注意:这里使用的是buildASTSchema()
,而不是buildSchema()
。
改造版的graphql
范例
前一篇范例文章,把其中的schema
定义部分,单独拿出来成文。见这里:
上面这种结构定义方式,官方叫做
SDL
,全称是Schema Definition Language
。说明见这里:
改造代码如下:
值得注意的是:原来的buildSchema
也变成了buildASTSchema
。

另外一种使用方式
官方文档里面,还有提到:
如果不想在代码里面写graphql-import-node/register
的话,也可以在node
的-r
参数里面指定。
很奇怪的用法。

参考文献
- https://newsn.net/tag/graphql.html
- https://graphql.org/
- https://graphql.org/learn/
- https://graphql.org/code/
总结
本文中的伪需求完成,schema
部分单独成文了,代码清晰了好多。更多graphql
的文章,请点击苏南大叔的博客:


