'TypeError: Cannot read properties of undefined (reading 'document')

I was using qraphql (JavaScript graphql-request library) in a project and ran into a typeError. Here's the code:

import { request, gql } from 'graphql-request'
const graphqlAPI = process.env.NEXT_PUBLIC_GRAPHCMS_ENDPOINT
export const getPosts = async () => {
    const query = gql`
    query MyQuery {
        postsConnection {
          edges {
            node {
              author {
                bio
                name
                id
                photo {
                  url
                }
              }
              createdAt
              slug
              title
              excerpt
              featuredImage {
                url
              }
              categories {
                name
                slug
              }
            }
          }
        }
      }
 `     
    const result = await request(graphqlAPI, query)

    return result.postsConnection.edges
}

The error said there was a problem with the document parameter of the request.



Solution 1:[1]

Never Mind, its because the Next_endpoint wasnt defined, all good now!

Solution 2:[2]

2 Errors:

  1. The method which you have used here to fetch the data is outdated.
  2. The endpoint here is missing you will find it in the graphcms in your account : settings/access/api access /endpoints

Remove the command

const graphqlAPI = process.env.NEXT_PUBLIC_GRAPHCMS_ENDPOINT

and the .env file associated with it. After that use the following code:

import { gql } from 'graphql-request';
import { GraphQLClient } from 'graphql-request';

export const getPosts = async () => {
    
    // new endpoint
    const graphQLClient = new GraphQLClient(
        endpoint // here add your endpoint
    );

    const query = gql`
    query MyQuery {
        postsConnection {
            edges {
                node {
                    author {
                        bio
                        name
                        id
                        photo {
                            url
                        }
                    }
                    createdAt
                    slug
                    title
                    excerpt
                    featuredImage {
                        url
                    }
                    categories {
                        name
                        slug
                    }
            }
        }
        }
    }
    `
    const result = await graphQLClient.request(query)
    return result.PostsConnection;
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Xetify
Solution 2 Yash_3001