此页面需要javascript支持,请在浏览器中启用javascript

Graphql 学习笔记(1)

gql
Graphql
共383个字,阅读时间 2 分钟
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://icebreaker.top/articles/2020/10/gql-1

提前准备

如果您和我一样是 windows 系统,记得设置 mongodb server 的 bin 和 tools 的 bin 为环境变量,不然无法使用 mongoimport 等工具

安装训练数据

在执行完 训练用 mongodb 数据 里的 import.sh -s

如果您和我一样是 windows 系统,可以用 Git Bash 执行 Shell 脚本

在本地的 mongodb,多了:

  • sample_library
  • sample_pictures
  • sample_school
  • samples
  • twitter

这几个 database

接着让我们开始安装需要用的 npm 包

yarn add express apollo-server-express mongoose graphql@14.7.0 graphql-tag graphql-compose graphql-compose-mongoose

or

npm i -S ...

graphql 先指定 14.7.0 ,最新版本 15.3.0 ,因为 npm ls graphql 查询可知其他依赖的都是 14.7.0 版本,版本不同会导致

Ensure that there is only one instance of \"graphql\" in the node_modules\ndirectory. 错误

定义 Mongoose Schemas

我们先从 sample_library 开始

我们根据表结构定义 Book 和 Cover 的 Schema

使用 Populate Virtuals 定义表之间的关系

可详见本项目目录 db/schemas

生成 GQL Schema

可详见本项目目录 db/gql

作为 nuxt 中间件使用

nuxt server 用的是 connect 所以我们用 express + apollo-server-express 由于不喜欢 cjs 和绝对路径引用,我加了一层 rollup

可详见本项目目录 serverMiddleware/graphql

生成成功

dev:

prod: