본문 바로가기
  • 삽질하는 자의 블로그
날려버린 나의 AJAX! 바보였다 바보였어 관리자 전용 페이지를 만들었다. 조오기 업데이트 버튼을 눌러서, 글을 받아오려는 것을 만들려고 했다. 새로고침을 하기 싫어서 (상품 휠로 내린거 다시 위로 쭉 올라오니까) AJAX 요청으로 하려고 했다. 그랬다. 그랬었다... 1. 버튼의 data-이름 = "값" (값에는 물품의 DB _id)으로 동적인 값을 받아 스크립트로넘기고 2. 버튼의 ID로 버튼을 선택해 아이디의 data-값을 dataset 으로 넘겨받아 3. AJAX요청으로, DB에서 값을 받아와, 사이트 내의 값을 채우고 싶었다. 문제는 중요한 곳에 있었다. 바로 2번에 버튼 ID를 받아 오는게 문제였다. 사실상, 버튼 ID를 받아오기에는, 똑같은 ID의 버튼만 계속 만들어진다. => 불가능 접근을 잘못하고 있다는 사실을 2시간 넘게 날리고.. 2022. 9. 21.
[csrf 토큰이 먹지 않아 ] 2편.... csrf토큰은 세션이 필요햇 시간은 밤 열두시... 복잡한 머리를 가라앉히고자 csruf를 통해 csrf token만 집어넣고 자려고했다! 룰루랄라 csurf 설치하고~ 패키지 불러오고~ 모든 템플릿에 한번에 보내려고 미들웨어형태로 집어넣고~ 템플릿에 hidden value 집어넣고~ 이제 우리의 토큰이, 브라우저로 들어가서, 브라우저에서 서버로 인증토큰을 딱! 제시해주면! 응 네 토큰 없어 오늘은 눈을 씻고 찾아봐도 없었다. 그 어떤 구문오류도, 오타도 한시간을 내다버리고, 일단 골이아파서 자고일어났다. 오늘 아침 문뜩 생각해보니, 서버에서 템플릿으로 싹 다 보내..? 그렇다면 혹시 내가 세션패키지를 통한 세션을 구현하지 않아서 그런가...? 일단 세션을 구현해보았다. 야홋! 된다!! 역시 사람은 잠을 자야하는거였다. 2022. 9. 20.
[res.locals.csrfToken] 난관에 봉착했다. csrf 토큰이 한쪽 controller에만 먹는다 MVC 패턴 리팩토링중... VIEW는 이미 리팩토링 하며 하고있었고, MODEL과 CONTROLLER는 완성시켜, 마무리단계로 CONFIG들을 조금씩 처리중에 있었다. 그런데 무한정 생성해놓은 오류페이지로 넘어가기 시작했다. 물론, VSCODE의 오류는 없이. 그렇다면, 모든 오류를 캡쳐하기 위해, 생성해놓은 오류페이지로 렌더된다는 것인데, 최근에 바꾼것이라곤, res.locals.csrfToken 으로, 라우트에서 따로 토큰을 부여하지않고, app.js 에서 모든 페이지에 한번에 적용하기 위한, 방책이었다. 그런데, 만들어 놓은 controller 2개 중, 한쪽의 controller에만 이게 적용되고 나머지 하나는, render할때마다 csrf 토큰 에러가 발생한다. 결론부터 말하자면, 이유는 모르.. 2022. 9. 17.
[간단한 블로그만들기 - 오류 모음3] res.locals.isAuth 를 통해, 템플릿 동적 관리하기가 안되요! 동적 템플릿 관리를 위해 res.locals 를 꺼내들었다. 그런데 웬걸? 헤더가 바뀌지 않아! 뭐가 문제일까! 문제는 미들웨어의 위치였따. 이 미들웨어는 [세션 생성 이후] 템플릿을 렌더하기 이전 [조건을 생성]해주어야 하기 때문에 세션 생성 이후, 라우터 미들웨어 이전에 위치해야한다. 아주 좋은 위치다! return 빼먹은 것도 다시 집어넣었고 헤더도 이쁘게 바꿔놓았고! 아주 깔끔하게 되었다! 로그인시 세션을 부여하여, 액세스를 제한하고 ejs 구문( ) 이외에, locals 를 사용하여, 전체 템플릿에 적용되는 동적 템플릿을 만들었다. 난이도가 높아질수록 이해하고 복습하는데, 머리나 컴퓨터나 오류가 많이 발생한다. 좀더 논리적인 하루가 되었으면 좋겠다. 2022. 9. 14.
[간단한 블로그만들기 - 오류 모음2] db에서 불러온 데이터가 없어요! 멍청이가 다시 소환되었다. 네. db를 소환하는데 await를 안했다니요. 아하하하핫 await는 써서 고쳤는데 alert라니 아직도 나는 자바스크립트의 노예가 분명하다. 2022. 9. 13.
[간단한 블로그만들기 - 오류 모음1] req.body.name 이 안먹혀요! 새로만드는 도중 자꾸 req.body.name 이 안먹힌다. 이상하다... 맞는데! name도 맞고... 다 맞고... 미들웨어도 빼먹고... 한대 맞고... 미들웨도 안적고 값을 가져오려고 했던 바보였다고한다. 2022. 9. 13.
"Access denied for user 'root'@'localhost' (using password: YES)" , sqlState: '28000' 오랜만에 mySQL을 켰다. 시작하자마자 오류가난다. sqlMessage: "Access denied for user 'root'@'localhost' (using password: YES)" sqlState: '28000' ==>> 비빌번호 잘못 친 오류이다. 오랜만에 비밀번호를 쳤더니 까먹었었나보다. 비밀번호 다시 잘 치니 해결! 2022. 9. 12.
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 별거없지만, 뭔가 떳길래 적어본다. 이 오류는 서버에서 두개 이상의 응답을 클라이언트에게 보낼 때 발생한다. 요로코롬 조건문을 달아, 조건별로 다른 두가지의 렌더를 하는데 바보같이 return을 쓰지 않았다. 으하핫 고치니까 잘된다. 해결! 2022. 9. 8.
error: MongoNetworkError: connect ECONNREFUSED ::1:27017 [ 이번엔 mongoDB다] 네 그렇습니다. 이번에는 mongoDB입니다. 하지만! 이번에는 mongoDB의 Manual을 보고 스스로 해결했습죠 강의에서는 [mongoDB의 데이터베이스 서버 연결 URL]을 localhost:27017 이라 했지만\ mongo shell 에 나오는 나의 connection은 요로코롬 나온다 이겁니다. 그래서 manual을 찾았더니 127.0.0.1로 해보랍니다! 그래서 바꿨더니 짜잔- 정상페이지! 야호! 2022. 9. 1.
'npm'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 개뿔이다. MongoDB 를 이용한 noSQL 데이터베이스 연습을 위해 새 프로젝트를 생성했다! 기존 블로그포스트에 mongoDB를 연결하려는데 npm이 안먹힌다 어련하시겠어 슨배임들은 오류를 어떻게 해결했을까 구글링하니 환경변수 라는 신비한 친구가 나왔다. 1. [내컴퓨터 - 우클릭 - 속성 ] 진입하면 [ 고급 시스템설정] 이 나온다 2. [환경변수] 를 눌러 [경로를 추가한다] 3. 경로는 C:\Users\USERNAME\APPData\Roaming\npm\ 4. VSCode를 껏다킨다. 5. 야호 해결 날마다 늘 새로운 오류가 날 반기네 ps. 최우선으로 VSCode를 껏다 켜보는걸 가장 추천한다. 2022. 9. 1.
[req.params.id] 에서 id가 읽히지 않는 오류 오늘도 평화로운 아침 블로그 페이지를 만드는 미니프로젝트 앞에 [삭제버튼] 생성이 갑자기 먹히지 않았다. 분명 /:id로 동적라우트를 만들고 query까지 깔끔하게 해냈더니 이게 웬걸 삭제버튼만 req.params.id를 읽을수가 없단다. 아무리 봐도 잘못된지를 모르겠어서 잠깐 쉬다 오니 이게 웬걸 req와 res가 바뀌어있네 아침부터 열심히 틀린그림을 찾아보았다. 아이 잘된다. 편안- [오늘의 오류] req.params.id 가 읽히지 않을때 [해결] 콜백의 파라미터가 잘못되었는지 확인하자 2022. 8. 31.
[connect ECONNREFUSED 127.0.0.1:3306] 징글징글한 첫 오류 프론트엔드 공부 한달차, 방황아닌 방황을 거듭하고 드디어 데이터베이스를 사용하여, NODEJS에 데이터베이스를 연결하려는 그 순간 connect ECONNREFUSED 127.0.0.1:3306 아... 구글링으로 해결방법을 찾은 결과 1. host 바꾸기 localhost를 127.0.0.1 로 바꿔보았다 ==> 실패 2. port 번호 제대로 입력하기 혹시모를 port번호 이상사태를 막기위해 포트번호를 입력해보았다. ==> 실패 정확히 두시간을 싸맨 후에 찾은 오류 해결방법은 MYSQL 서버, 워크벤치 재설치 이후에 Error: Access denied for user 'root'@'localhost' (using password: YES) 이렇게 생긴 귀여운 에러가 발생했지만 비밀번호 오류라서 간단.. 2022. 8. 29.