GraphQL基于nodejs的例子,如何运行第一个demo?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔在上一篇文章中阐述了大量自己对graphql
究竟是什么的观点后,本文将要讲述第一个graphql
的小例子(代码基于node
)。当然,作为第一个入门例子,您也可以根据您的喜好选择其它语言的demo
,在官方的页面上都有列出各种选择。这里苏南大叔就是随手选了个nodejs
的范例。

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的故事。本文讲述如何基于nodejs
运行第一个graphql
的代码。
测试环境:win10
,node@16.14.0
,graphql@15.8.0
/graphql@16.3.0
。
下载graphql
前一篇文章中,苏南大叔已经详细阐述了GraphQL
究竟是个什么事物的观点,它是一个新的接口查询语言。如果您还不知道它具体是个什么事物,可以点下面的链接查看:
关于下载graphql
,鉴于它的极为奇特的功用及身份。所以,它并不是一款独立的软件。它只是一款标准,每个语言下都有自己的基于其标准的实现。所以,在每个不同的高级编程语言(node
/java
/php
/go
等等)里面,graphql
它都是单独下载的。
本文中的代码是基于nodejs
的。当前最新版是graphql@16.3.0
,安装命令是:
然而普及程度更多的版本是15
系列。如果降级安装的话,命令是:
有关nodejs
及npm
如何安装,如何加速的文章,可以点击下面的链接:
- https://newsn.net/say/centos-node-bin-2.html
- https://newsn.net/say/centos-node-bin.html
- https://newsn.net/say/centos-node.html
- https://newsn.net/say/node-n.html
- https://newsn.net/say/node-nvm.html
官方原版代码
这里本地运行一个nodejs
的代码,例子是官方提供的,见下面的链接:

基于nodejs
的官方原版范例代码:
版本差异
目前GraphQL
正处在15
和16
的版本更替过程中,它们的函数并不一致,所以,您可能会碰到一些错误提示信息。不必着急,并不是你复制错代码了,也不是查询语句的问题。只不过是大版本更替,api
函数不兼容导致的。这其中的道理,可以点击下面的链接了解:
所以,如果您碰到这样的错误提示,就说明您本地的graphql
的版本和代码的调用并不是兼容的。
这个错误并不是代码上所显示的schema
的问题,并不要纠结于是不是schema
的语法错误。

方案一:查看本地graphql
版本号的方法如下:
相关的说明文章,请点击:
方案二:代码查看已价值的GraphQL
版本号的方法:
改良版代码
对于本文来说,graphql
的15
和16
版本并不兼容,两者的差异在于最后的调用形式。苏南大叔改良版的代码如下:
然而上面这个代码也就是针对15
和16
进行的切换,并没有处理其它版本的情况,所以请大家理性的复制代码。

graphql
的版本号是graphql@15
系列的话,那么运行下面的代码:
graphql
的版本号是graphql@16
系列的话,那么运行下面的代码:
运行结果:

模拟用户输入部分:
- 在
GraphQL@15
中,graphql(schema, '{ hello }', root)
中的{ hello }
,就是模拟的输入数据。 - 在
GraphQL@16
中,这个{ hello }
查询语句,就体现为source
参数。
参考文献
总结
既然升级到了graphql@16
了,官方也不加个特别说明,导致大量新人懵逼。本文的代码正确运行,是基于本地的graphql
的版本号的。所以,请确认相关事宜。
更多graphql
的文章,请参考苏南大叔的博客:


