해결된 질문
작성
·
229
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";