일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 객체정의
- 설치
- round
- 자동
- Generator
- express
- tPerRow hn측
- sanitize
- nodejs
- 생활코딩
- 함수
- template
- dr 학교측
- Web2
- /bin/www
- app.js
- 모듈
- JavaScript
- nodemon
- lowdb
- 객체란
- Web
- local
- 데이터
- node.js
- 객체
- 실행
- passport
- math
- Passport.js
- Today
- Total
목록웹 개발/Multi User on Passport (9)
괜찮아 잘하고있어 힘내

114) topics테이블에 접근해 id값에 해당하는 데이터를 찾아 topic변수에 담는다. 여기서 id값은 삭제버튼을 클릭했을때 hidden값으로 넘어오는 값인데 141) 여기서 value 값을 topic.id로 값을 넘겨줘야한다. (topic.id로 수정) 115) 넘어온 페이지 정보가 담긴 topic변수에서 user_id값과 사용자 로그인 정보가 담긴 user에서 id값을 비교해 해당 페이지의 사용자가 맞는지 검사한다. 만약 같지 않다면, 조건문이 실행된다. 116) 같지 않다면 flash를 사용해 화면에 휘발성으로 문구를 표시. 117) 홈으로 리다이렉션 한다. 119) 조건이 같다면 조건문이 실행되지 않고 topics테이블에 접근해 id값이 넘어온 페이지의 id값과 같은것을 찾아 삭제한다. 12..

로그인을 하고 페이지를 수정하려고 update를 클릭하면 주소가 update/제목 이 뜨게된다. 이 부분을 수정해줘야한다. topic.js에 /:pageId 부분을 보면 127) update링크 버튼부분인데 넘어가는 주소를 topic.id로 수정해준다. 해당 페이지의 id값이 주소로 만들어진다. -------------------------------------------------------------------------------------------------------------- 파일 기준으로 읽어오는것이기 때문에 원하는 값이 나오지 않는다. 이부분을 수정해준다. update 라우터 내용 중 동그라미친 영역을 지워준다. 파일에서 가져오는게 아니라 lowdb를 이용해 db.json에서 읽어올것이..

12) main.js에 lib - db.js (lowdb를 사용하기 위한 코드들을 묶은 모듈)을 require시킨다. 28) topics테이블에 접근해 .value() 를 사용하면 topics테이블의 모든 값들을 가져온다. 29) next();를 실행시켜 이 미들웨어를 끝낸다. (그다음 미들웨어를호출한다) 실행시켜보면 형식이 다르기 때문에 아직 object라고 뜬다. 23) filelist[i].id 와 filelist[i].title로 바꿔준다. 목록들이 정상적으로 나오고, 페이지 제목, 내용, 작성자 까지 잘 나온다.

8) lib - db.js를 로드한다. 5) topics 라는 것을 배열로 추가해준다. node를 재시작해보면 db.json파일에 topics라는 항목이 하나 자동으로 추가된다. 40~42) 기존에는 fs.writeFile()을 사용해 파일에 직접 데이터를 저장했다. 이번엔 lowdb를 사용해 데이터베이스에 저장할것이다. 그래서 주석 처리해준다. 43) 페이지 고유의 id값을 랜덤으로 가져야 하기 때문에 shortid.generate()를 사용해 랜덤 아이디값을 부여한다. 44) topics라는 테이블에 접근해 데이터를 삽입한다. 48) 로그인을 한 상태라면 request.user에는 사용자 정보가 들어있을것이고 그 중 사용자의 id값을 저장해둠으로써 나중에 지금 만드는 페이지의 수정또는 삭제 권한을 부..

32) 로그인을 했을때 username과 password 값이 채워져서 들어온다. 우리는 로그인할때 email을 입력하기 때문에 의미에 맞게 username을 email로 바꿔주면 좋다. usernam이 사용된 세 군데를 email로 바꿔준다. 34) 사용자가 입력한 email과 authData.email값을 같은지 비교한다. 우리는 실제로 사용자가 회원가입한 다이나믹한 데이터를 들고와서 비교해야하기 때문에 authData 코드들을 지워준다. 29) 임의로 파일에 사용자 정보를 저장한 authData객체가 아닌 직접 사용자가 회원가입한 정보를 db.json 파일에서 가져와야 하기 때문에 lowdb를 사용해 users테이블에 접근한다. 그리고 email값과 password값이 27)에서 넘어온 email과..

회원가입 후 다시 로그인을 하는 방법과 회원가입 후 바로 로그인 되게 하는 방법 두가지가 있는데 여기서는 회원가입 후 바로 로그인 되게 하는 방법을 사용한다. 81) user라는 이름의 변수 안에 로그인 객체를 넣어준다. 88) push 안에 user를 넣어준다. 89) request.login 의 첫번째 인자를 user로 준다. 그다음 function으로 callback을 하고 err가 있다면 어떠한 처리를 하게 한다. 91) return 으로 홈으로 리다이렉션 한다. 17, 23, 33) 확인을 위해 콘솔에 출력해본다. 18) user.email에서 user.id로 바꾼다. 그 이유는 구글같은것으로 로그인을 하게 되면 이메일이 아닌 다른 대표성이 있는 식별자가 필요한데 그걸 위해서 우린 id라는 식별..

shortid 라는 모듈을 사용해 중복없는 랜덤한 값을 생성하여 id값으로 사용할 수 있다. npm install -s shortid 를 사용해 shortid 모듈을 설치해준다. 7) 적당한 곳에 shortid 모듈을 추가한다. /register_process 부분에서 users테이블에 값을 저장하는 부분인 83) id값을 저장할때 shortid.generate( ) 를 사용해 랜덤한 값을 id값으로 저장한다. 저장하고 새롭게 회원가입을 해보면 닉네임이 10going 이라는 회원의 id가 랜덤값으로 저장된것을 확인할 수 있다. ----------------------------------------------------------------------------------------------------..

routes 폴더 안에 topic.js 파일 안에서 /create_process 부분을 복사해 routes 폴더 안에 auth.js 파일 안에 붙여넣어준다. 그리고 69) /register_process 로 바꿔주고 70 ~ 73) 필요 없으므로 지워준다. 70) post방식으로 넘어온 데이터들을 post라는 변수에 담는다. 71 ~ 74) 각각의 넘어온 데이터들을 이름에 맞게 변수에 담아준다. 그리고 npm install -s lowdb 를 사용해 lowdb를 설치해준다. auth.js 파일 상단에 lowdb를 사용하기 위한 코드들을 추가해준다. 7) lowdb를 가져오는 코드 8) FileSync 는 동기방법으로 lowdb의 데이터를 파일에 저장한다. 9) db.json은 db.json이라는 파일에 ..

10) login 옆에 회원가입 링크 버튼을 추가해준다. 클릭했을때 /auth/register 로 넘어간다. 2) 여기도 login 옆에 회원가입 링크 버튼을 추가. 클릭했을때 /auth/register 로 넘어간다. routes - auth.js 안에 /login 부분을 복사해서 /login_process 밑에 붙여넣고 수정해준다. 33) /register 로 수정. 44) submit 버튼을 클릭했을때 /auth/register_process 로 넘어간다. 라고 수정. 49~51) 비밀번호를 두번 입력받아 확인해야한다. 그래서 name값을 pwd2 로. 52) 사용자 닉네임을 입력받는다. 54) 제출 버튼의 보여질 값을 register로 수정.