草庐IT

javascript - 如何访问 GraphQL 解析器中的请求对象(使用 Apollo-Server-Express)

我有一个使用GraphQL的标准快速服务器constserver=express();server.use('/graphql',bodyParser.json(),graphqlExpress({schema}));问题是:如何访问解析器中的request对象?我想在一些特定的查询中检查JWT这是导入的模式:consttypeDefs=`typeUser{id:String,name:String,role:Int}typeQuery{user(id:String):User,users:[User]}`;constresolvers={Query:{user:(_,args,con

javascript - GraphQL 循环依赖

我是javascript的新手,目前正在学习使用Node.js实现带有MongoDB后端的graphQLAPI。我遇到了两种类型之间循环依赖的问题。基本上,我有一个经典的博客文章/博客作者情况。一篇文章只有一位作者,因此mongoose架构包含对该作者的引用。在我的graphQL类型“作者”中,我想添加一个字段“帖子”,它允许我从作者导航到他们写的所有帖子。该引用未在数据库模型中编码,而是通过Controller检索。这是我的博文代码。vargraphql=require("graphql");varAuthorResolvers=require("../resolvers/autho

javascript - "export ' createNetworkInterface ' was not found in ' Apollo 客户端'

我做了这个样本:https://github.com/Akryum/vueconf-2017-demo因此,我的项目中有相同的文件:https://github.com/Akryum/vueconf-2017-demo/blob/master/src/apollo-client.js这是我的应用程序中使用的代码:import{ApolloClient,createNetworkInterface}from'apollo-client'constapolloClient=newApolloClient({networkInterface:createNetworkInterface({u

javascript - "Found @client directives in query but no client resolvers were specified"使用客户端缓存时出现警告

我一直在关注ApolloClientdocs在地方州。我实现了一个非常简单的客户端缓存查询:exportconstGET_USER_ACCOUNTS=gql`queryGetUserAccounts{userAccounts@clientname@client}`;userAccounts和name在验证后都存储在我的缓存中:{localStorage.setItem('token',token);client.writeData({data:{isLoggedIn:true,userAccounts,name:`${givenName}${familyName}`,},});}}>并

javascript - ES6 粗箭头和括号 `(...) => ({...})`

这个问题在这里已经有了答案:ECMAScript6arrowfunctionthatreturnsanobject(6个答案)关闭6年前。我一直在研究一些GraphQL/React/Relay示例,但遇到了一些奇怪的语法。在GraphQL对象中定义字段时,使用以下语法:constxType=newGraphQLObjectType({name:'X',description:'Amadeuptypeforexample.',fields:()=>({field:{/*etc.*/}})});据我所知,这只是定义一个匿名函数并将其分配给xType.fields。该匿名函数返回包含字段定义

javascript - react + Apollo : GraphQL errors array not passed into component

根据这些Apollodocs,设置all的error-policy应该使GraphQL响应的errors数组可用于我的Apollo包装的React组件“所以[my]UI可以使用它们。”我的应用程序是通用的,所以我使用此策略很重要,这样错误就不会阻止应用程序完全呈现。问题是,即使我的浏览器开发工具在服务器响应中显示了errors数组,我也无法在我的React组件的props中访问它。同样,props.data.error始终未定义。这是为什么?//ComponentimportReactfrom'react';import{graphql}from'react-apollo';impor

javascript - 如何使用 Apollo-Client 为请求设置超时

我有一个React-Native应用程序,我在其中向GraphQL服务器发出请求。一切正常,除了我需要一种方法将请求/客户端的超时设置为5或10秒。目前请求在超时之前需要很长时间(大约1分钟)。这是我如何使用客户端的简单示例。constclient=newApolloClient({networkInterface:createNetworkInterface({uri:`${config.server_hostname}/graphql`})});client.query({query:gqlString});我一直无法通过StackOverflow、谷歌搜索或Apollo的文档找到

javascript - GraphQL 能否在解析器中选择性地解析给定查询结果的字段?

我有以下REST端点:/orders/{id}returns{orderId,orderItem,customerId}/customers/{id}returns{customerId,firstName,lastName}我受限于这两个端点,它们将被包装在我的graphql模式中。我想要以下架构:typeOrder{orderId:ID!,orderItem:String,customer:Customer}typeCustomer{customerId:ID!firstName:String!lastName:String!}typeQuery{getOrder(id:Strin

javascript - 如何在突变后更新分页列表?

我有一个包含消息列表的线程,它是通过GET_THREAD_MESSAGES查询获取的。该查询是分页的,根据用户之前是否看过该线程,可能会加载第一页、最后一页或仅加载新消息。(即任何first/after/before/last都可以传递任何值)thread(id:"asdf"){messageConnection(after:$after,first:$first,before:$before,last:$last){edges{cursornode{...messageInfo}}}}现在我有一个sendMessage突变,我调用它然后在该突变的update方法中我想乐观地将发送的消

javascript - 如何将两个依赖的 GraphQL 查询与 'compose' 结合起来?

已解决!我正在尝试合并两个相关的GraphQL查询。第一个应该获得一个ID,第二个应该使用那个ID。我读到compose的行为类似于flowRight(),但无论我以什么顺序放置查询,如果queryId低于queryDetails,queryDetail总是被跳过(如预期的那样)。无论我如何将我的代码放在一起,该变量都是未定义的。import{graphql,compose}from'react-apollo'importgqlfrom'graphql-tag'classHomeextendsComponent{constructor(props){super(props)consol