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数据库入门, python 操作postgres
Postgres:将自定义类型从 Java 传递给 postgres 函数