koa + graphql + dataloader
如果不熟悉 dataloader 和 graphql,请看之前的两篇文章。
dataloader 配合 graphql 使用会使得 schema 定义变得非常简洁清晰。
定义 dataloader 服务⌗
首先需要定义一个 koa-graphql 服务,和之前文章的有些许不同, 之前是使用一个 object 当做数据 store 存在内存, 这次我们使用 sqlite 数据库。
将 dataloader 实例传入上下文,可供 resolver 使用,如果不使用 dataloader 也可以传入 db model。
定义 schema⌗
可以看到使用 dataloader 可以将数据查询逻辑放在 dataloader 中,使得 schema 非常简洁清晰。
使用⌗
启动服务,打开http://localhost:3000/graphql, 输入:
{
user(id: 15) {
id
username
}
post(id: 2) {
id
title
author_id
author{
id
username
}
}
}
可得到结果
完整代码,请看http://gost.surge.sh/#/gost/99cd47c0-9ad5-409e-9456-0d9e74e19495
Read other posts