【GraphQL】Node + Postgres + adminer实现demo应用

1、程序目录

在这里插入图片描述
在第一级目录下存在三个文件,

db.sql用于创建tables和demo数据,可以直接在adminer里登录执行sql语句进行创建,可以看到如下图绿色部分的执行结果
在这里插入图片描述
docker-compose.yaml用于为node、postgres和adminer分别创建一个容器,和之前的教程一样,这里不再赘述

graphql.txt里存放了可执行的graphql的query语句,可以复制到GraphiQL里进行执行,当用node app.js运行了程序之后,就可以打开浏览器输入http://localhost:3000/graphql,然后便进入GraphiQL界面了,如下图所示

在这里插入图片描述
然后在app/api路径下,这个路径被映射到了node的container里,package.json用来安装环境包,使用 node app.js启动程序,另外resolvers.js用于写GraphQL的resolver,而schema.graphql用于定义GraphQL的schema

2、schema

schema里定义了我们的数据类型,在这个demo里即Article和User

在这里插入图片描述
还定义了我们graphql的query查询方式,相当于定义接口
在这里插入图片描述
其中!感叹号表示查询时不能缺少这个变量,比如查询user时,必须要指定userId,而查询users时,不需要指定,因为默认就是返回全部users。

可以看到users查询的返回值也有一个感叹号,表示一定有返回,但这个感叹号的位置有讲究,有如下四种排列组合

  • [User],可能返回null,或者array,且array里面可能有null
  • [User!],可能返回null或者array,但array里一定不会有null
  • [User]!,一定会返回array,但array里可能有null
  • [User!]!,一定返回array,且array里一定不会有null

3、resolvers

GraphQL允许高度自定义的方式进行查询,实现这样目的的方法就是将schema里所有类型下的组件分别写好各自的查询语句,因此可以随意定制查询,也更好地利用了数据库的查询机制

4、启动方法

和之间教程类似
1、docker-compose up -d启动containers
2、进入node的container
3、npm i下载包
4、http://127.0.0.1:8080/进入adminer的postgres创建表和数据
5、node app.js启动程序

源码地址:https://github.com/lujiazho/nodejs-demos/tree/main/graphql-postgres-demo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值