[graphQL] Apollo Server V3

김민재·2024년 4월 9일

GraphQL

목록 보기
10/11

express-server을 Apollo Server로 마이그레이션

불필요한 모듈 삭제

  • npm uninstall express-graphql

필요한 모듈 설치

  • npm i apollo-server-express

1. Apollo Server 로직 구현

const { loadFiles, loadFilesSync } = require("@graphql-tools/load-files");
const { makeExecutableSchema } = require("@graphql-tools/schema");
const { ApolloServer } = require("apollo-server-express");
const path = require("path");
const express = require("express");
// const { graphqlHTTP } = require("express-graphql");
// const { buildSchema } = require("graphql");

const PORT = 3000;

const loadedFiles = loadFilesSync("**/*", {
  extensions: ["graphql"],
});
// graphql이라는 파일을 모두 불러온다.

const loadedResolverFiles = loadFilesSync(
  path.join(__dirname, "**/*.resolvers.js")
);
// 절대경로로 resolvers.js 파일 불러오기

async function startApolloServer() {
  // express도 Apollo에 접근해야해서
  const app = express();

  const schema = makeExecutableSchema({
    typeDefs: loadedFiles,
    resolvers: loadedResolverFiles,
  });

  // apollo 객체 생성
  const server = new ApolloServer({
    schema,
  });

  // apollo server 시작
  await server.start();

  // express와 연결
  server.applyMiddleware({ app, path: "/graphql" });

  app.listen(PORT, (req, res) => {
    console.log(`server open ${PORT}`);
  });
}

startApolloServer();

2. localhost:3000/graphql 시작해보자.

  1. 서버를 시작해보면 포스트맨처럼 사용 가능하다.
profile
개발 경험치 쌓는 곳

0개의 댓글