GraphQLNode + Postgres + adminer实现demo应用

Posted _less is more

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GraphQLNode + 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

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

以上是关于GraphQLNode + Postgres + adminer实现demo应用的主要内容,如果未能解决你的问题,请参考以下文章

postgres安装

postgres基本操作大全

postgres数据库入门, python 操作postgres

Postgres:将自定义类型从 Java 传递给 postgres 函数

无法创建用户 postgres:角色“postgres”不存在

致命:连接到 postgres 时用户“postgres”的密码验证失败