인프런 커뮤니티 질문&답변
섹션22 과제5번 질무이있습니다
해결된 질문
작성
·
265
0
 아래 코드를 실행할때마다 오류가 발생해서 여쭤봤습니다.
아래 코드를 실행할때마다 오류가 발생해서 여쭤봤습니다. 
그전에 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"; 





