본문 바로가기

백엔드

(8)
session : secret/resave/saveUninitialized 쓰는 이유 사용한 npm : express-session 신기하게, session사용하면서 안에 아무런 내용도 입력을 안했더니 이렇게 터미널 창에 입력하라고 안내가 나왔다. resave, saveUninitialized, secret 3개옵션을 설정하라는 것이었다. 내가 보면서 클론 코딩하고 있는게 아래 였는데, 딱 3개 다 입력이 되어있었다. secret: 내가 설정하는 시크릿 코드(아무거나 써도됨) resave: request 때마다 계속 세션 새로고침할거야? true - 응 새로운 리퀘스트 때마다 세션 새로 줘 (현재 deprecated됨) false - 아니, 한번 받은 세션은 그대로 둘게 ==> 대부분 false를 쓰기 떄문에 true는 deprecated된 상태. saveUninitialized: tru..
mongoose.Schema에 new를 붙이는 이유 몽구스에스 스키마 모델을 만들때 왜 new를 붙여야 할까? new를 안붙여도 작동을 하길래, 왜 굳이 붙여야 할까 궁금했다. 한줄요약 - new를 안붙여도 작동은 한다. - 하지만 new를 붙이는 것이 올바른 방법이다. 공식 문서에서 new 붙여서 쓰라고 하니까 그렇게 써라. - Schema가 생성자 이기 때문에 new키워드를 붙여야 한다. 항상 공식 문서를 참고하자. 참고 https://mongoosejs.com/docs/api/schema.html#Schema() https://stackoverflow.com/questions/59870635/what-is-the-difference-between-mongoose-schema-and-new-mongoose-schema https://dailytaeho..
mongodb에서 useNewUrlParser, useUnifiedTopology 쓰는 이유 몽고디비를 쓸때 useNewUrlParser useUnifiedTopology 이 두개는 항상 true로 해야 한다고 하고 그냥 그대로 따라 하기는 하는데, 왜 하는지 궁금했다. mongoose.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true, }); 왜 쓰는지 검색해보니, useNewUrlParser: 몽고디비에서 쓰는 parser를 이제 안쓰는데, (새로운 parser로 대체됨) 만약 새로운 파서에서 에러가 날 경우 예전에 쓰는 parser로 롤백 할수 있게 하기 위해서 라고 한다. useNewUrlParser - The underlying MongoDB driver has deprecated their cur..
sessionStorage const customAxios = axios.create({ headers: { Authorization: `Bearer ${sessionStorage.getItem("userToken")}`, } }); 콘솔 Application - Session Storage 콘솔 Application - Session Storage
노드 회원가입, if else문 중복 값 전송에러. Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 노드에서 if else문을 작성했는데 이런 에러 메세지가 떴다. Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at new NodeError (node:internal/errors:372:5) at ServerResponse.setHeader (node:_http_outgoing:576:11) at ServerResponse.header (C:\Users\SJ\Desktop\elice\study\back\node_modules\express\lib\res..
index.js에는 어떤 내용이 들어가야 할까? 프로젝트 시작시 보통 index.js 파일부터 시작하게 설정이 되어 있다. 자세한 내용은 전에 내가 쓴 블로그 내용 참고. https://koreankoder.tistory.com/2 프로젝트 프로세스 기록(JavaScript) 완전 무無, 백지상태에서 유有를 만들어내는 프로젝트의 첫 시작. 그 과정을 기록해보고자 한다. 이것은 순전히 나의 기록용/공부용이며, 프로젝트를 하며 잊어버리는 과정들을 적어놓으려고 koreankoder.tistory.com 그렇다면 제일 처음 서버가 시작하는 index.js 파일에는 보통 어떤 내용이 들어가야 할까? 이건 첫번째 프로젝트에서 썼던 index.js 파일이다. 여기까지는 주어졌던 부분들인데, 핵심적으로 2개의 기능이 들어가 있다. ① (핵심 기능모음인) app.js..
mysql2, post 중복가입 막기(같은 이메일로 가입 못하게 하기) 코딩은 정말 신기하다. 남이 짠 (잘 동작하는) 코드를 볼때는 '오 알거같아!' 라고 생각하지만 내가 똑같은 기능을 구현하려고 하면 이리저리로 에러를 엄청나게 많이 맞이하게 된다. 이번에도 잘 짜여진 코드를 보면서 '아 이런식으로 구현하면 되는구나' 하고 이해하고나서 내가 직접 하려고 하니 왜이렇게 어려운지. 🤓 무려 이틀동안 고생하면서 헤메다가, 드디어 post 중복방지 기능을 구현했다. 이틀을 헤메면서 과연 성공이 가능한걸까..? 하는 막막함이 들었는데 오늘 드디어 헤메다가 기능을 구현해서 진짜 너무너무 기뻤다. (내가 이걸 하다니....!) 나중에 또 헷갈릴까봐 내가 겪은 에러들을 기록해두려고 한다. 덤으로 내가 배웠던 것들을 저장해놓고 mysql2를 쓰면서 나와 같은 에러가 있는 사람들이 있다면 ..
프로젝트 프로세스 기록(JavaScript) 완전 무無, 백지상태에서 유有를 만들어내는 프로젝트의 첫 시작. 그 과정을 기록해보고자 한다. 이것은 순전히 나의 기록용/공부용이며, 프로젝트를 하며 잊어버리는 과정들을 적어놓으려고 하는 목적이고, 내가 처음 공부할때 너무 애먹었던 것들이 나중에 누군가에게 도움이 되길 바라며 글을 쓰게 되었다. #npminit 아무것도 없는 완전 빈 백지에서 무언가 시작하려고 할때 너무나도 막막한 기분이 들곤 했다. 이럴때 어떤 순서로 진행해야 하는지 기록해두려고 한다. #package.json #package.json설명 1. 제일먼저 해야할것: npm init npm init 명령어는 package.json 패키지를 만들어주는 명령어이다. 터미널 창에 npm init을 입력하고, 엔터를 쭉 (4번정도?) 치면 기본 ..