第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GraphQL 解析器上下文在 Playground 中工作,但在官方 NextJS 入門示例中不在

GraphQL 解析器上下文在 Playground 中工作,但在官方 NextJS 入門示例中不在

慕容708150 2023-04-27 17:08:05
我正在重新配置我的 NextJS/Apollo 應(yīng)用程序以允許使用 GraphQL API 路由的 SSG,并且我正在使用這個官方 NextJS 入門示例作為客戶端配置的基礎(chǔ)。我在自己的應(yīng)用程序中遇到了一個有趣的問題,所以我回到了入門示例并嘗試重現(xiàn)它,并且能夠重現(xiàn)。問題是,如果沒有任何上下文對象傳遞到查詢解析器,一切都可以正常工作(在操場上和客戶端上)。但是,當您引入上下文對象并將其傳遞給解析器時,它在 playground 中工作正常,但上下文對象是undefined從客戶端觸發(fā)的。這是來自官方 NextJS 入門示例的代碼,我將在添加任何內(nèi)容的地方進行評論。graphql.jsimport { ApolloServer } from "apollo-server-micro";import { schema } from "../../apollo/schema";const apolloServer = new ApolloServer({    schema,    context: {        //         foo: "bar",   // this is the context object I've added    },                //});export const config = {    api: {        bodyParser: false,    },};export default apolloServer.createHandler({ path: "/api/graphql" });typedefs.jsimport { gql } from '@apollo/client'export const typeDefs = gql`  type User {    id: ID!    name: String!    status: String!  }  type Query {    viewer: User  }`schema.jsimport { makeExecutableSchema } from 'graphql-tools'import { typeDefs } from './type-defs'import { resolvers } from './resolvers'export const schema = makeExecutableSchema({  typeDefs,  resolvers,})resolvers.jsexport const resolvers = {    Query: {        viewer: (_parent, _args, context, _info) => {            console.log("context", context); // console log check that I've added            return { id: 1, name: "John Smith", status: "cached" };        },    },};當我在 GraphQL playground 中運行它并查詢 API 時,它給了我正確的響應(yīng),并且在我的終端控制臺中它foo: bar從控制臺日志返回上下文對象,因此在服務(wù)器中正確傳遞了上下文對象。但是,當我在瀏覽器中訪問索引頁面時,是這樣的:index.jsimport gql from "graphql-tag";import Link from "next/link";import { useQuery } from "@apollo/client";import { initializeApollo } from "../apollo/client";const ViewerQuery = gql`    query ViewerQuery {        viewer {            id            name            status        }    }...呈現(xiàn)查看器名稱和查看器狀態(tài),因此查詢實際上正在發(fā)生,但在控制臺中,context對象控制臺日志正在返回undefined。所以當在客戶端使用時,context不知何故丟失了。我覺得這很有趣,因為這是一個正式的 NextJS 入門示例,除非他們將客戶端設(shè)置為不接受解析器中的上下文,否則我看不出問題是什么。而且,如果客戶端未設(shè)置為接受上下文,是否還有其他帶有客戶端設(shè)置的官方示例?
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

我已經(jīng)想通了這個問題。客戶端配置用于SchemaLinkhttp 請求,上下文在SchemaLink構(gòu)造函數(shù)中傳遞,而不是在服務(wù)器選項中傳遞,因為上下文是在帶有 httpLink 的 http 標頭中傳遞的。



查看完整回答
反對 回復 2023-04-27
  • 1 回答
  • 0 關(guān)注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號