原教程(https://juejin.im/post/5a49e5ccf265da430d585cfd),本帖主要记录遇到的坑以及暂时的解决方法,顺便为以后的升级做准备
github仓库 项目已更新babel版本,可以编译es6了
原教程写的挺好,使得我一个从来没接触GraphQL的人可以初步搭建一个小的demo,方便以后的进一步学习
看教程首先就会先处理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编译吧。
(1)在运行一次程序之后,ctrl+c关闭,下一次再运行的时候,报DeprecationWarning: current URL string parser is deprecated错误,在github中找到解决方法,在连接mongodb的时候,加上第二个参数
mongoose.connect(config.dbPath, { useNewUrlParser: true })
(2)第一次使用mongodb需要先自己命令行配置并开启
(1)先说说教程中使用的graphql-server-koa模块,我发现现在这个模块更新了,现在叫apollo-server-koa,原模块已经停止更新了,看了下新的工具,和原来代码不是很相似,所以做demo的时候我就没有换,还是使用原来的模块。
(2) 在我搭建好graphiql界面后,运行graphql查询语句后,命令行会报TypeError: ID cannot represent value:错误,且查询出来的_id字段值全为null。在我把查询语句中_id字段删除之后,错误消失,应该是因为哪里不允许查询id吧。
最后就是教程的一点小坑了,按照教程写的话,在前端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学习
react_graphQL_demo的basics分支
是一个小demo,以后会按照升级路线慢慢完善的,希望可以成为一个rax react+graphql的入门demo。本文章只供初学者了解基础GraphQL,一起进步。
react + apllo-server + prisma的入门文章地址:
react+apollo+prisma简单demo搭建—1、Frontend开始