inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

비회원 장바구니 구현 리뷰

해결된 질문

839

호겸

작성한 질문수 6

0

노션에 비회원 장바구니 구현 리뷰 코드 그대로 복붙해서 실행하면 에러400에 화면이 안뜹니다!

 

react node.js seo graphql next.js

답변 1

0

코드캠프 프론트엔드 멘토

안녕하세요!

어떤 상황인지 정확한 파악이 어렵습니다.
코드와 네트워크의 response를 함께 올려주시면 감사하겠습니다.

감사합니다.😂

0

호겸

 

{"errors":[{"message":"Context creation failed: 토큰 만료","extensions":{"code":"UNAUTHENTICATED","exception":{"stacktrace":["AuthenticationError: Context creation failed: 토큰 만료"," at Object.getUserFromAccessToken (/codecamp_backend_api/dist/common/libraries/security.js:24:15)"," at Object.context (/codecamp_backend_api/dist/common/libraries/configApollo.js:7:35)"," at Object.<anonymous> (/codecamp_backend_api/node_modules/@nestjs/graphql/dist/utils/merge-defaults.util.js:17:39)"," at Generator.next (<anonymous>)"," at /codecamp_backend_api/node_modules/tslib/tslib.js:117:75"," at new Promise (<anonymous>)"," at Object.__awaiter (/codecamp_backend_api/node_modules/tslib/tslib.js:113:16)"," at ApolloServer.moduleOptions.context (/codecamp_backend_api/node_modules/@nestjs/graphql/dist/utils/merge-defaults.util.js:16:54)"," at ApolloServer.<anonymous> (/codecamp_backend_api/node_modules/apollo-server-core/dist/ApolloServer.js:666:38)"," at Generator.next (<anonymous>)"," at fulfilled (/codecamp_backend_api/node_modules/apollo-server-core/dist/ApolloServer.js:5:58)"," at runMicrotasks (<anonymous>)"," at processTicksAndRejections (internal/process/task_queues.js:93:5)"]}}}]}

 

import { useQuery, gql } from "@apollo/client";
import { MouseEvent } from "react";
import {
  type IBoard,
   type IQuery,
   type IQueryFetchBoardsArgs,
} from "../../src/commons/types/generated/types";

const FETCH_BOARDS = gql`
  query fetchBoards($page: Int) {
    fetchBoards(page: $page) {
      _id
      writer
      title
      contents
    }
  }
`;

export default function StaticRoutedPage() {
  const { data } = useQuery<Pick<IQuery, "fetchBoards">, IQueryFetchBoardsArgs>(
    FETCH_BOARDS
  );

  const onClickBasket = (basket: IBoard) => () => {
    console.log(basket);

    // 1. 기존 장바구니 가져오기
    const baskets: Array<Pick<IBoard, "contents" | "title" | "_id" | "writer">> =
      JSON.parse(localStorage.getItem("baskets") ?? "[]");

    // 2. 이미 담겼는지 확인하기
    const temp = baskets.filter((el) => el._id === basket._id);
    if (temp.length === 1) {
      alert("이미 담으신 물품입니다!!!");
      return;
    }

    // 3. 해당 장바구니에 담기
    baskets.push(basket);
    localStorage.setItem("baskets", JSON.stringify(baskets));
  };

  return (
    <>
      {data?.fetchBoards.map((el) => (
        <div key={el._id}>
          <span style={{ margin: "10px" }}>{el.writer}</span>
          <span style={{ margin: "10px" }}>{el.title}</span>
          <button onClick={onClickBasket(el)}>장바구니담기</button>
        </div>
      ))}
    </>
  );
}

0

코드캠프 프론트엔드 멘토

에러를 읽어보시면 토큰 만료라고 쓰여있네요!
브라우저의 어플리케이션에서 토큰을 삭제해주시고, 다시 로그인 해주세요!
그리고 실패한 요청을 다시 요청해보시길 바랍니다!

감사합니다.😁

fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다

0

41

1

댓글 기능 구현 중 질문드립니다.

0

68

1

쿠폰코드 발급

0

147

2

example 서버 플레이그라운드, API 접속 모두 안됩니다.

0

89

2

문의드립니다!! ㅠㅠ

0

107

2

graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.

0

80

2

_app.js 작성 이후로 에러가 발생하네요

0

96

2

학습자료

0

72

2

학습자료가 안열립니다.

0

51

2

플레이 그라운드 퀴즈 문제 질문이 있습니다.

0

61

0

기존강의 구매자, 업데이트 끝인가요?

0

111

3

업데이트 버전 수강

0

89

2

완벽한 프론트엔드

0

136

2

나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.

0

84

1

graphql 접속이 안됩니다.

0

101

2

const, let 사용 질문 드립니다.

0

72

2

싸이월드 만들기 1탄 피드백 부탁드립니다.

0

124

2

회원가입 과제 피드백 부탁드립니다.

0

81

2

styled.span / styled.input "CSS 자동완성"

0

47

1

쿠폰 발급 관련

0

167

2

서버 502 error

0

248

2

쿠폰 다시 부탁드려도 될가여?

0

140

2

a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요

0

185

2

2분 44초 질문

0

132

3