💡
原文约800字/词,阅读约需3分钟。
📝
内容提要
在开发Woovi挑战时,我遇到了一些关于Koa.js和GraphQL的问题,特别是在迁移到graphql-http时。由于koa-graphql几乎被弃用,我选择了graphql-http。虽然它简单,但缺乏自定义错误处理和graphiql支持。通过创建处理程序和适配上下文类型,我解决了这些问题并简化了错误处理,最终成功更新了库并优化了项目。
🎯
关键要点
- 在开发Woovi挑战时,选择使用graphql-http替代koa-graphql,因为后者几乎被弃用。
- graphql-http功能简单,但缺乏自定义错误处理和graphiql支持。
- 通过创建处理程序和适配上下文类型,解决了graphql-http的功能缺失问题。
- 在迁移过程中,首先需要完全移除koa-graphql并安装graphql-http。
- 创建处理程序时,需要导入createHandler并传入schema和context。
- 适配context类型时,需注意headers的获取方式发生变化。
- 创建了一个函数来正确验证和获取GraphQL HTTP头信息。
- 错误处理变得更简单,只需添加一个中间件来处理GraphQL错误。
- graphiql的访问方式进行了调整,使用ruru在开发环境中访问playground。
- 最终成功更新库,优化项目并节省了一些KB的体积。
❓
延伸问答
为什么选择从koa-graphql迁移到graphql-http?
因为koa-graphql几乎被弃用,graphql-http是一个更简单的替代方案。
graphql-http有哪些功能缺失?
graphql-http缺乏自定义错误处理和graphiql支持。
迁移到graphql-http的第一步是什么?
第一步是完全移除koa-graphql并安装graphql-http。
如何创建graphql-http的处理程序?
通过导入createHandler并传入schema和context来创建处理程序。
如何处理graphql-http中的错误?
只需添加一个中间件来处理GraphQL错误,简化了错误处理。
如何在开发环境中访问graphiql?
使用ruru工具在开发环境中访问playground。
➡️