728x90
반응형
SMALL
응답 값이 어디 있었지?
![]() |
근데 얘는 어디의 뭔데? login.ejs 파일에 연결된 js파일로 유저 입력값을 req에 담아 그걸 fetch를 사용해 JSON 값으로 담아 서버로 갖다주는거 |
여기 있었지?
그럼 서버에서 응답으로 res 해줄거 아님?
여기 메인으로 갖다 줘야 하니깐
![]() |
응답의 success가 true 라면 위치 href 값을 '/' 메인으로 두고 false면 경고창으로 message를 띄워 |
![]() |
성공하면 루트화면으로 가진다 |
이제 보니 에커 캐치가 없네?
![]() |
한줄 만들어 주고 저건 어떨때 뜨는 에러인고 하니 |
![]() |
여기 이렇게 라우팅 되는 경로만 없애보자고 |
![]() |
그럼 이때 이렇게 에러 메세지가 뜬다 POST 할 경로도 없어 404에러가 뜨고 로그인중 에러가 났다고 나 |
모델 만들자 (겁나 신기함)
임의로 테스트하기 위해 만든 이
모델 데이터를
이제 모델을 만들어 써보도록 하자
그리고 꽤 신기한걸 할거라 잘 기록 해둬야 함
데이터를 가지고 있는 놈을 하나 만들거고
이런 데이터를 가지고 있는 놈 을 가지고 조작을 해서
저런 데이터를 로직을 처리 하는 놈 또 하나 만들거
그 전에
![]() |
![]() |
이런식으로 좀 더 깔끔하게 빼내버렸음
(와 이런식으로 코드 정리가 되네..)
![]() |
저 폴더랑 안에 파일 만들어서 |
![]() |
class를 파일명과 동일하게 셋팅 해두고 모듈로 만들어 밖으로 꺼내 쓰게 해두자 |
![]() |
그리고 컨트롤러에 있던거 갖고오고 |
![]() |
컨트롤러에서 저 모델의 값을 갖고오는지 부터 확인 ㄱ |
![]() |
로그인 버튼을 누르니 아주 잘 나오는걸 확인! |
근데 또 신기한거
![]() |
이렇게 그냥 모델에서 users를 다이렉트로 불러오는게 더 깔끔할수 있을거 같음 |
![]() |
그런데 이대로는 불러 올수가 없음 |
![]() |
static을 붙여 정적으로 만들어줘야 저 users 변수에 접근을 할 수 있게 된 |
![]() |
불러오기가 된다 |
static을 붙이는 이유는 이렇다..
그런데 원래 이렇게 다이렉트로
UserStorage라는 내부 데이터의 users라는 변수로의 접근이
불가 하도록 설정을 해주는게 맞다
![]() |
변수 은닉화 앞에 샵(#)을 붙임으로 public한 변수에서 private한 변수로 바꿔줄수 있다 이러면 외부에서 불러올수 없 |
![]() |
이 상태로 서버 켜고 로그인 버튼 누르면 undefined가 뜨게된다 |
그런데 이러면 데이터를 받아 올수 읎잖아. .?
모델에서 값을 받아다가
컨트롤러에서 로그인 기능이 작동하게
비즈니스 로직 처리를 해야 하는디?
![]() |
getUsers() 라는 메서드를 하나 만들어줄건데 은닉화 된 private 변수인 #users 값을 리턴 해 줄거 그리고 class에 자체에서 접근을 하려면 당연히 static을 붙여 줘야 |
![]() |
컨트롤러에서 getUsers() 메서드를 호출 해주면 |
![]() |
은닉화된 users가 나오게 된다 |
필드가 지금 id와 pw뿐이라 괜찮지만 만약 뭐 몇개 되면?
난 원하는 필드만 갖고오고 싶은데?
![]() |
name 필드를 추가 했다고 하자 |
![]() |
여서 id와 pw만 불러오고 싶다면? |
![]() |
여기 UserStorage로 가서 먼저 users에는 은닉화된 값이 들어가고 newUsers에는 저기 fields들(id,pw,name)이 들어가는데 reduce는 배열 같이럼 작동하는거라 한줄씩 갖고 올거임 그래서 저 은닉화된 users에 hasOwnProperty 메서드를 썻는데 이는 객체 내에 특정 속성이 존재하는지 검사하는 메서드로... |
![]() |
컨트롤러에서 id와 pw를 불러오라 했으니 이렇게 나오는 것이다 |
728x90
'Back-End Frameworks > Node.js' 카테고리의 다른 글
10) Nodejs - 백앤드 넓고 얕게 맛보기_정리_회원가입 요청 기능 구(출처 유튭 강의) (0) | 2023.10.31 |
---|---|
9) Nodejs - 백앤드 넓고 얕게 맛보기_정리_User 모델 만들기(출처 유튭 강의) (0) | 2023.10.30 |
7) Nodejs - 백앤드 넓고 얕게 맛보기_정리_프론트 요청에 대한 파싱(출처 유튭 강의) (0) | 2023.10.30 |
6) Nodejs - 백앤드 넓고 얕게 맛보기_정리_프론트 엔드 기능 구현(출처 유튭 강의) (0) | 2023.10.28 |
5) Nodejs - 백앤드 넓고 얕게 맛보기_정리_폴더 구조 최적화(출처 유튭 강의) (0) | 2023.10.28 |