인프런 커뮤니티 질문&답변

jay kang님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

04-몽구스의 진실

섹션22 과제5번 질무이있습니다

해결된 질문

작성

·

229

0

스크린샷 2023-07-23 20.27.37.png아래 코드를 실행할때마다 오류가 발생해서 여쭤봤습니다.

그전에 startStandaloneServer가 없을때에는 오류는 안나왔지만 grapql페이지로 접속하였을때 빨간불이 들어오고 서버가 제대로 접속되지않아서 방법을 바꾸니 typeerror가 발생했는데 어디에서도 server.addPlugin을 작성하지않았고 공식페이지에서의 방법도 해봤는데 왜 오류가 나는지 찾지를 못했습니다

import { ApolloServer } from "apollo-server";
import { startStandaloneServer } from "@apollo/server/standalone";

const typeDefs = `#test

# Board에 관한 Query는 
# 로직 내에 Query가 없는 채로 실행했을 때 나타나는
# "Error: Query root type must be provided." 에러 방지를 위한 것입니다.
type BoardReturn {
    number: Int
    writer: String
    title: String
    contents: String
  }

  type Query {
    fetchBoards: [BoardReturn]
  }

  type Mutation {
    # 1. 아래에 createTokenOfPhone API의 요청 데이터 타입을 지정해 주세요.
    createTokenOfPhone(phone : Int) : String

  }
`;

const resolvers = {
  Query: {
    fetchBoards: (_, args) => {
      return [
        {
          number: 1,
          writer: "철수",
          title: "제목입니다",
          contents: "내용입니다",
        },
        {
          number: 2,
          writer: "영희",
          title: "좋은 날씨입니다",
          contents: "내용입니다",
        },
      ];
    },
  },

  Mutation: {
    createTokenOfPhone: (_, args) => {
      // 2. 아래 로직을 만들어 주세요.
      // (힌트: phone.js 내에 존재하는 함수들을 사용해서 로직을 완성해 주시면 됩니다.
      //  로직 구성이 어려우신 분들은 rest_api 폴더 내에 존재하는 index.js 파일을 참고해 주세요.)

      // 2-1. 휴대폰번호 자릿수 맞는지 확인하기
      const phone = args.phone;
      if (phone.length > 10 || phone.length < 10) {
        return "핸드폰 번호 재확인 해주세요";
      }

      // 2-2. 휴대폰 번호 자릿수가 맞다면 핸드폰 토큰 4자리 만들기
      const result = String(Math.floor(Math.random() * 1000)).padStart(4, "0");

      // 2-3. 만든 토큰을 핸드폰번호에 토큰 전송하기

      return `token : ${result}`;
    },
  },
};

const server = new ApolloServer({
  typeDefs,
  resolvers,
});

await startStandaloneServer(server);

// server.listen(3000).then(({ url }) => {
//   console.log(`🚀 Server ready at ${url}`);
// });

답변 1

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! Daon님!

apollo-server => @apollo/server로 업데이트 되었습니다!

따라서, 아래 부분을 신버전으로 변경해 주세요

// 구버전
import { ApolloServer } from "apollo-server";

// 신버전
import { ApolloServer } from "@apollo/server"; 
jay kang님의 프로필 이미지

작성한 질문수

질문하기