返回首页
提前准备
- mongodb 4.x 版本 (社区版)
- mongodb-database-tools
- vscode 插件 graphql.vscode-graphql
- 训练用 mongodb 数据 :
如果您和我一样是 windows 系统,记得设置 mongodb server 的 bin 和 tools 的 bin 为环境变量,不然无法使用
mongoimport
等工具
安装训练数据
在执行完 训练用 mongodb 数据 里的 import.sh -s
后
如果您和我一样是 windows 系统,可以用 Git Bash 执行 Shell 脚本
在本地的 mongodb,多了:
- sample_library
- sample_pictures
- sample_school
- samples
这几个 database
接着让我们开始安装需要用的 npm 包
yarn add express apollo-server-express mongoose [email protected] 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:
- yarn gql:dev + node dist/gql-dev.js 可在 http://localhost:4000/gql 访问并使用 vscode 直接调试
- 2020-10-07 添加 graphql-voyager http://localhost:4000/voyager/gql
prod:
- yarn dev 或 dev:raw 可在 http://localhost:4000/graphql/gql 访问