전체 글 221

SyntaxError: Unexpected token } in JSON at position 67

api로 요청과 응답을 보내면서 body에 여러 값들을 넣고 생성이나 수정을 하기 위해서 요청을 보내면 SyntaxError: Unexpected token } in JSON at position 67 같은 에러를 종종 만났다.... 위와 같은 오류 SyntaxError 에러라고 문법상 오류가 있을때 나타나는 오류이다. : 나 ) , 같이 넣어야 할 문자를 넣지 않아서 나타나기도 하고, 오타로 인해서 나타나기도 하고 이유는 다향하지만 어디서 문제가 났는지 잘 알려주기때문에 잘 찾아서 수정하면 금방 해결되는 문제 인것같다. 근데 이번 내가본 오류는 찾기가 어려웠다. 내가 친 코드의 문제가 아니라 body에 값을 넣어서 보내줄때 실수를 한거여서 내가 친 코드가 아닌 다른 파일에서 오류가 난다고 해서 잘 찾을..

coding/Error 2022.07.29

const castError = new CastError();

사용자 인증 미들웨어를 만들다가 const castError = new CastError(); 라는 오류를 만났다 try { const { userId } = jwt.verify(tokenValue, secretKey); User.findById({ userId }).then((user) => { res.locals.user = user; next(); }); } catch (err) { res.status(401).send({ errMessage: "로그인이 필요합니다.", }); return; } 대략 이런 미들웨어 구문에서 id 값을 찾아서 res.locals에 담아주려고 하는데 id로 찾는 부분에서 문제가 일어난듯 했다. 구글링을해서 찾아보니 findById가 아닌 findOne으로 값을 찾으면 ..

coding/Error 2022.07.29

npm jsonwebtoken

전에도 js에서 ajax를 이용하여 JWT 토큰을 만들어 로그인을 시도하고 로그인정보를 확인하는 JWT에 다룬적이 있다. 이번엔 node에서 jsonwebtoken을 이용하여 토큰을 생성하여 로그인에 대해 알아보자 token 방식의 특징 - 사용자 정보를 일일히 서버의 세션에 저장하지 않고, 사용자의 로컬에 저장. - 사용자가 요청을 보낼 때마다 유저 정보 확인을 일일히 하지 않아도 됨. - 웹 표준 기반 기술로써, 여러 환경에서 지원 이러한 토큰 방식을 사용하기 위해서는 JWT(Json Web Token) 기술을 사용한다. JWT 설치 npm i jsonwebtoken 토큰 생성 방법 const jwt = require('jsonwebtoken'); var userInfo = {id: 1, userna..

coding/Node.js 2022.07.29

TIL 220728

주특기 입문 주차도 끝났다. 개인과제로 api명세서를 참고하여 노드를 이용해 서버를 띄우고, 간단한 데이터를 요청하면 응답하는 작은 서버를 구축하는 것이었다. 금요일에 시작해서 다행히 월요일에 일찍 끝내서 추가적인 유효성 검사를 통해서 서버의 오류가 났을 때 오류를 미연에 방지해주어 오류를 잡았다. 그 후에 더 좋은 방법들을 알아냈지만, 구현까지는 해보지 못했다.. 다음에 있을 노드 심화 강의가 궁금하기도 했고, 미리 진도를 빼놔야 잘 따라가고 공부시간이 생길 것 같았다. 나머지 개인 공부시간을 이용해서 심화과정의 강의를 한번 다 들었다. 기초 때 만들던 쇼핑몰을 보완하는 건데 난 보완이라 해서 기존 꺼에 심화 코드를 넣으면 댈 줄 알았지만, 생각보다 다른 부분들이 많아서 부분 부분 수정하는데 더 시간이..

일지/TIL 2022.07.29

js 객체 비구조화 할당

비구조화 할당이란, 배열이나 객체의 속성 혹은 값을 해체하여 그 값을 변수에 각각 담아 사용하는 js 표현식 ES6 부터 추가된 문법이며, 구조 분해 할당 이라고도 함 즉, 배열이나 객체의 값을 새로운 변수에 쉽게 할당함 배열 선언 및 호출 기존방식 //배열선언 const animalList = ['CAT', 'DOG', 'TIGER']; //각각 변수담기 const cat = animalList[0]; const dog = animalList[1]; const tiger = animalList[2]; //각각호출 console.log(cat); // 'CAT' console.log(dog); // 'DOG' console.log(tiger); // 'TIGER' 배열의 인덱스를 하나씩 꺼내서 직접 할당..

coding/JS 2022.07.29

TIL 220727

어느덧 항해 주특기 입문 챕터가 끝나간다. 지난주 목요일에 시작했는데 과제를 빨리 끝내고 개인 공부를 해서 그런지 시간이 다른 때보단 조금 빠르게 간 느낌이 든다 이번 주차를 되돌아보면서 나 열심히 했나 생각해봤는데 음... 열심히 한 것 같다. 과제 목표도 힘들게 잡았는데 기간 안에 완료해서 혼자 심화 강의 들으면서 공부하고 시키는 것을 빨리 끝내고 개인 공부 시간을 만들었으니 열심히 했다고 할 수 있겠지? 과제하고 내가 논 것도 아니고 ㅋ 근데 요즘 너무 더워져서 그런지 아침과 낮에 집중력이 떨어지긴 한 것 같다. 지난주만 생각해도 비가 오고 좀 선선해서 버틸만했는데 이번 주는 정말 폭염으로 집에서 가만히 앉아있어도 숨이 턱 막히는 게 힘들다 에어컨을 켤 순 있지만 좀 아끼고 싶어서 참고는 있는데 도..

일지/TIL 2022.07.29

TIL 220726

오늘은 주특기 과제를 마무리하고 나니 개인 공부시간이 있어서 주특기 심화 강의를 들었다. 맨 처음은 복습의 개념으로 하기 때문에 따라 하면서 하는 데는 큰 문제는 없었다. 개인 과제를 하면서 난 postId를 _id 값으로 하나씩 가져와서 지정해줬다면 강의를 보니 virtual() 이란 가상 키 값을 만들어서 저장은 안 되지만 사용할 수 있도록 만들었다. 내가 과제에서는 힘들게 구현했던 것을 새로운 방법으로 구현하는 것도 보면서 더 구글링을 하고 고민을 더 해봐야겠다고 생각했다. 목요일까지 시간이 좀 남아서 다른 강의들을 들으면서 예습을 하고 강의만 보고 있으면 낮에 너무 졸리니까 그땐 중간중간 팀 과제 개념 정리를 지금처럼 할 생각이다. 내일도 보다 더 나은 하루가 되도록 꾸준하게 해 보자 ㅎㅇㅌ 오늘..

일지/TIL 2022.07.29

TIL 220725

3주 차가 시작되었다. 2주가 흘렀네... 2달은 한 것 같은데 아직 반에 반도 안 한 거라니 ㅋㅋㅋ 체력이나 정신력이 끝까지 버텨주길 기도하고 잘 관리해야지 오늘은 주특기 개인과제를 마무리했다. 일단 댓글 기능을 완성했고, 여러 조건들을 추가해서 오류가 발생하지 않도록 했다. 거기서 요구사항에는 없었지만, 게시글, 댓글의 ID를 받아서 CRUD를 하는데 없는 데이터를 가지고 수정하거나, 삭제하고, 댓글을 쓰는 부분이 마음에 걸려서 그 부분은 따로 혼자 유효성 검사를 만들어서 오류를 걸러줬다. 그렇게 하고 나니 지금 ID의 값이 몽고 디비의 기본 값인_id 값을 넣어주는데 이 값이 Object 값이다 보니 형식이 따로 있었다. 자세히 어떤 식으로 생성되는지는 모르지만 이 부분도 1, "a" 같은 형식을 ..

일지/TIL 2022.07.29

WIL 220724 - 2번째 주말

항해를 시작하고 2번째 주말 이제 거의 14일 정도를 했다. 2주 정도가 지났는데 지금 3 챕터 주특기 기초 주차로 주특기인 노드에 대해서 배우고 있다 1주 차 미니 프로젝트인 사이트 하나를 만들었고, 2주 차인 알고리즘 주차 때 각자 알고리즘을 풀어서 팀원들과 코드 리뷰를 하면서 자바스크립트 사용을 좀 더 익혔으면, 이번 주특기 주차 때는 노드를 직접 해보는 주차이다 이번 주특기 기초에서는 개인 과제로 서버를 만들어서 혼자 api를 주고받는 과제가 있다. 어제까지 기본 강의를 다 듣고 혼자 서버를 만들어서 api를 주고받았는데 너무 어렵다... 왜 서버가 어렵다는지 알겠다. 눈으로 보이지 않으니 더 어려운 게 있는 것 같다. 그래도 강의를 듣고 하나씩 따라 하니까 절반 정도? 완성했다. 내일까지 완성을..

일지/WIL 2022.07.28

TIL 220723

어제 주특기를 시작으로 오늘 node 기초강의는 다 들었다. 근데 문제는 머리에 남는 게 없는 것 같다 ㅇㅅㅇ.. 분명 볼 때는 대략적으로 이해가 됐는데 개인과제를 위해 새로 레포를 파니 머리가 새하얘졌다.. 그래도 과제 자료를 보면서 어떤 식으로 api를 짤지 구상하고, 처음부터 하나씩 기억을 더듬어가며 시작했다. 당연히 코드 치는 거는 익숙지 않아 강의자료를 옆에 띄워두고 하나하나씩 코드를 작성해 나갔다. 처음엔 서버를 띄우는 것부터 그다음엔 get요청을 그리고 디테일 요청을 하면서 잘되던 서버가 갑자기 안되기도 하고 할 때마다 혼자 구시렁거리면서 어디가 잘못됐나 찬찬히 찾아갔다. post도 해보고 putrhk delete까지 해보니 일단 기본적인 게시글 작성 및 조회 수정까지는 얼추 되었다. 막상 ..

일지/TIL 2022.07.28