写一个GraphQL的小demo

7 篇文章 0 订阅
1 篇文章 0 订阅

写一个GraphQL的小demo

原教程(https://juejin.im/post/5a49e5ccf265da430d585cfd),本帖主要记录遇到的坑以及暂时的解决方法,顺便为以后的升级做准备

github仓库 项目已更新babel版本,可以编译es6了

原教程

原教程写的挺好,使得我一个从来没接触GraphQL的人可以初步搭建一个小的demo,方便以后的进一步学习

es6(更改babel版本后解决)

看教程首先就会先处理import以及export的es6识别问题,于是按照教程创建start.js文件,安装babel-polyfill,运行发现出错,命令行报Error: Cannot find module ‘babel-core/register’,google了一下,可能是版本问题,也有说要安装@babel-core的。但是,最后还是没有成功,目前是将原教程中的es6模块部分写成了es5的(import =》require,export =》module.exports)。这两天用webpack或者gulp编译吧。

mongodb

(1)在运行一次程序之后,ctrl+c关闭,下一次再运行的时候,报DeprecationWarning: current URL string parser is deprecated错误,在github中找到解决方法,在连接mongodb的时候,加上第二个参数

mongoose.connect(config.dbPath, { useNewUrlParser: true })

(2)第一次使用mongodb需要先自己命令行配置并开启

GraphQL

(1)先说说教程中使用的graphql-server-koa模块,我发现现在这个模块更新了,现在叫apollo-server-koa,原模块已经停止更新了,看了下新的工具,和原来代码不是很相似,所以做demo的时候我就没有换,还是使用原来的模块。
(2) 在我搭建好graphiql界面后,运行graphql查询语句后,命令行会报TypeError: ID cannot represent value:错误,且查询出来的_id字段值全为null。在我把查询语句中_id字段删除之后,错误消失,应该是因为哪里不允许查询id吧。

js

最后就是教程的一点小坑了,按照教程写的话,在前端js里面,ajax的success函数中res里面应该没有data参数,而是student和course参数。

之后的升级

(1)es5 =》 es6 (解决)
(2)graphql-server-koa =》 apollo-server-koa
(3)demo =》 有意义的程序
(4)前端采用rax(本意是学习rax的) rax-script的webpack打包graphql出错,只能暂时用react学习

github地址

react_graphQL_demo的basics分支
是一个小demo,以后会按照升级路线慢慢完善的,希望可以成为一个rax react+graphql的入门demo。本文章只供初学者了解基础GraphQL,一起进步。

react + apllo-server + prisma的入门文章地址:
react+apollo+prisma简单demo搭建—1、Frontend开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值