Search code examples
javascriptnode.jsgraphqlapollostack

Does apollo-client work on node.js?


I need a graphql client lib to run on node.js for some testing and some data mashup - not in a production capacity. I'm using apollo everywhere else (react-apollo, apollo's graphql-server-express). My needs are pretty simple.

Is apollo-client a viable choice? I can find no examples or docs on using it on node - if you're aware of any, please share.

Or maybe I should/can use the reference graphql client on node?


Solution

  • Apollo Client should work just fine on Node. You only have to install cross-fetch.

    Here is a complete TypeScript implementation of Apollo Client working on Node.js.

    import { ApolloClient, gql, HttpLink, InMemoryCache } from "@apollo/client";
    
    import { InsertJob } from "./graphql-types";
    import fetch from "cross-fetch";
    
    const client = new ApolloClient({
      link: new HttpLink({ uri: process.env.PRODUCTION_GRAPHQL_URL, fetch }),
      cache: new InMemoryCache(),
    });
    
    
    client.mutate<InsertJob.AddCompany, InsertJob.Variables>({
      mutation: gql`mutation insertJob($companyName: String!) {
          addCompany(input: { displayName: $companyName } ) {
              id
          }
      }`,
      variables: {
        companyName: "aaa"
      }
    })
      .then(result => console.log(result));