1.首先尝试创建一个空项目,执行以下语句安装graphqlnpminstallgraphql并将以下代码保存为hello.jsvar{graphql,buildSchema}=require('graphql');varschema=buildSchema(`typeQuery{hello:String}`);varroot={hello:()=>'Helloworld!'};graphql(schema,'{hello}',root).then((response)=>{console.log(response);});执行nodehello.js,得到一段JSON数据。从上面的部分可以看出,graphql是一个普通的函数。我们甚至可以在前端代码框架中使用上面的代码2.创建后端服务创建如下代码,保存为server.js。实现一个简单的post服务,根据body中的query查询graphql,返回相应的数据。var{graphql,buildSchema}=require("graphql");consthttp=require("http");varschema=buildSchema(`typePerson{age:Intname:String}typeQuery{person(index:String):Person}`);varroot={person:function(param,context){return{age:18,name:"sj"};}};http.createServer((req,res)=>{letbody="";req.on("data",data=>{body+=data;});req.on("end",()=>{const{query,variables}=JSON.parse(body);constcontext={db:"todo"};graphql(schema,query,root,context,variables).then(response=>{res.结束(JSON.stringify(响应));});});})。听(3000);graphql函数可以传递5个参数schema,定义一些类型来描述query,前端获取数据定义的结构,最终结果与之一致。resolver,schema中类型对应的执行函数上下文,用于传递执行上下文,在koa或express变量中起着重要作用,传递给执行函数的变量值3.客户端请求使用postman模拟浏览器请求。Postman集成了graphql功能,发送的数据符合graphql客户端的标准请求格式。4.框架提到graphql就不得不提到两个重要的框架ApolloRelay(Facebook)因为,Apollo市场口碑好,好用,之前只用过Apollo。下面我就来简单介绍一下。已经很简单了,不需要再介绍Apollo的服务端框架;client和react的结合可以极大的提高我们前端代码的效率。例如一次性的简单数据查询,使用如下代码完成functionDogPhoto({breed}){const{loading,error,data,refetch}=useQuery(GET_DOG_PHOTO,{variables:{breed},skip:!繁殖,});如果(加载)返回空值;如果(错误)返回`错误!${错误}`;return(
