본문 바로가기
Node.JS

[GraphQL] PayloadTooLargeError 에러 해결 방법

by 이곳느 2021. 12. 31.

`PayloadTooLargeError` 는 페이로드로 전달되는 데이터의 크기가 너무 크면 발생하는 에러입니다.

디폴트로 100kb가 지정되어 있는데 이는 `express` 미들웨어 옵션을 수정해주면 됩니다.

 

GraphQL 기준으로 아폴로 서버 인스턴스를 생성한 후에 생성된 인스턴스를 이용하여 미들웨어를 수정하면 해결됩니다.

const { GraphQLServer } = require("graphql-yoga");

const apolloServer = new GraphQLServer({
  schema,  // 스키마 지정
  context, // 컨텍스트 지정
});

const options = {
  port: 1234
  bodyParserOptions: { limit: "10mb", type: "application/json" },
};

apolloServer.start(options, () =>
  console.log("Server is running");
);

// ...

위 방법도 있고 프로덕트에 따라서 다른 방법을 이용해야 할 경우에는 `applyMiddleware` 를 이용하는 방법도 있습니다.

하지만 위와 같은 동작을 합니다.

// ...
const { GraphQLServer } = require("graphql-yoga");

const apolloServer = new GraphQLServer({
  schema,  // 스키마 지정
  context, // 컨텍스트 지정
});

apolloServer.applyMiddleware({
  app: WebApp.connectHandlers,
  path: '/graphql',
  bodyParserConfig: {
    limit: '100mb',  // 지정할 payload 크기
  },
})

// ...

'Node.JS' 카테고리의 다른 글

Node.js란?  (0) 2020.08.23