mini project

Kuno17·2023년 1월 16일
0

TIL/WIL

목록 보기
4/38
post-thumbnail
post-custom-banner

미니프로젝트를 하면서 처음으로 jwt를 통한 로그인 회원가입 기능을 만들어봤다.
미니프로젝트를 하멶서 만나볼 수 있는 에러는 다 만나본게 아닌가하는 생각이 들었다
모든 문제해결을 기록하지는 못했지만 아래 자주 실수한 에러메시지는 이와같이 정했다.

문제

미니프로젝트를 진행하며 야심차게 만난 에러코드들이다....

View function mapping is overwriting an existing endpoint function
Uncaught TypeError: is not a function`
$.cookie is not a function

시도

  1. 라우터 url을 변경해 봤다..
    내부 함수명이 잘못된건지 확인.

  2. 함수를 호출하는 방법을 변경.

  3. 쿠키 관련 지식을 검색..

해결

1.플라스크 서버를 두개 만들때 함수의 이름이 같아 발생한 문제였다..

@app.route("/record_jjim_del", methods=["POST"])
def web_jjim(): #이름이 중복이다  -->> web_jjim_done으로 변경
    num_receive = request.form['num_give']
    db.SMTP_DB.update_one({'num': int(num_receive)}, {'$set': {'done': 0}})
    return jsonify({'msg':'찜 취소 완료!'})

@app.route("/jjim", methods=["GET"])  
def web_jjim(): 
    jjim_list = list(db.SMTP_DB.find({}, {'_id': False}))
    return jsonify({'jjim': jjim_list})

2.불러오는 함수이름을 잘못적어서 발생하는 에러였다. 이름을 잘 확인하자...

3.html <head>에 아래와 같은 스크립트를 삽입시켜 주면 된다.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>`

쿠키는 웹브라우저에 데이터를 저장할 수 있는 방법중 하나다.
지금은 서버측 세션객체에 저장된 객체를 찾기 위한 세견 키를 쿠키를 사용해서 전달하는 방식을 사용.. 이떄 쿠키를 다루기 위해서는 document.cookie 객체를 다뤄야 하는대
여기서 필요한것이 jquery cookie plugin을 넣어주는것이다.

쿠키 만들기

세션 쿠키 생성 - 브라우저를 닫으면 없으집니다.
$.cookie('name', 'value');

7일 뒤에 만료되는 쿠키 생성
$.cookie('name', 'value', { expires: 7 });

전체 사이트에 대해 7일 뒤에 만료되는 쿠키 생성
.cookie(name,value,expires:7,path:/);//세션쿠키생성브라우저를닫으면없으집니다..cookie('name', 'value', { expires: 7, path: '/' });// 세션 쿠키 생성 - 브라우저를 닫으면 없으집니다..cookie('name', 'value');

7일 뒤에 만료되는 쿠키 생성
.cookie(name,value,expires:7);?전체사이트에대해7일뒤에만료되는쿠키생성.cookie('name', 'value', { expires: 7 }); ? 전체 사이트에 대해 7일 뒤에 만료되는 쿠키 생성.cookie('name', 'value', { expires: 7, path: '/' });

쿠키 읽기

키로 사용한 이름으로 값을 읽습니다.
키로 저장된 값이 없으면 undefined 가 반환됩니다.
$.cookie('name');

모든 쿠키 읽기
모든 쿠키를 { "name": "value" } 형태의 객체로 반환합니다.
$.cookie();

쿠키 삭제하기
성공적으로 삭제되면 true 를 반환하고, 삭제 못했을때는 false를 반환합니다.
$.removeCookie('name');

쿠키 삭제시 생성할때 와 같은 path와 domain 을 사용해야 합니다.
아래와 같이 생성했다면,
$.cookie('name', 'value', { path: '/' });

이렇게 삭제할 수 없습니다.
$.removeCookie('name'); // => false

이렇게 삭제해야 합니다.
$.removeCookie('name', { path: '/' }); // => true

후기

시연영상 https://www.youtube.com/watch?v=3mZXxuARK5s
시간이 좀더 여유가 있었다면 상세페이지 구현과 글작성에대한 권한부여를 할 수 있었으면 좋았을거 같다.
다만 해당기능을 만들기에는 jwt에대한 기초지식이 아직 많이 미숙했다.

하지만 역시 제일 중요한 문제는 각종 github를 진행하면서 나오는 각종 트러블이었다.
git은 아직 많은 연습과 개별적인 스터디를 진행하면서 늘려나갈 수 있을거 같다.

profile
자바 스터디 정리 - 하단 홈 버튼 참조.
post-custom-banner

0개의 댓글