일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- nodejs
- express
- DART
- CLONE
- Flutter
- graphQL
- GRID
- pug
- form
- frontend
- TypeScript
- backend
- HTML
- react
- 리액트
- API
- NextJs
- ES6
- 자바스크립트
- Session
- MongoDB
- javscript
- heroku
- Component
- clonecoding
- node.js
- ECMAScript
- Mongoose
- CSS
- Today
- Total
Enjoy Programming
Express - MongoStore and MiddleWares 본문
기본적으로 express session은 cookie는 id만 저장할 뿐 data는 서버 store에 해야한다.
default session storage는 Memory store이고 실제 사용하기 위해 있는 것이 아니다.
session을 유지 하기 위해서는
메모리가 아닌 서버 데이터베이스를 사용해서 session을 저장해야 한다.
먼저 필요한 모듈인 connect-mongo를 설치해주자
그리고 app.js에 import 해준다
session을 MongoStore에 할당하고 CookiStore에 넣어준다
그리고 session미들웨어에서 store 옵션을 주자 new생성자로 CookieStore란 store를 생성해주고
CookieStore와 mongoDB를 연결해준다.
아 mongoose를 import 해주자
일단 이렇게 작성해서 하는데
최신 connect-mongo는 쓰는 방법이 달라졌다. 그냥 설치후 실행하면 에러가 생기는데 우선 과정을 후딱 진행하고 리뉴얼 할 예정이므로
npm install connect-mongo@2.0.1로 설치 후 진행 했다.
이제 쿠키와 세션정보가 mongostore에 저장 된다. 로그인후 서버를 재시작해도 로그인 유지가 된다.
이제 할일은 routes를 제한하자.. 무슨 말인즉슨 url상에 경로를 적으면 로그인을 안해도 각 라우트에 다 접속이 가능하다
또는 이미 가입하고 로그인한 유저라면 회원 가입 페이지가 안보여야 하는데 다 접속이 된다.
이 부분은 미들웨어 두개 만들어서 해주면 금 방끝난다. 근데 매우 유용하다.
하나는 공공으로 접속 가능한 미들웨어이고 하나는 private한 미들웨어이다.
잘 생각해보면 응용할 곳이 많다.
오늘은 여기까지~!~!~!~! 빡세다.. ㅎㅎㅎ 요새 주로 백단만 하다보니 프런트 쪽을 좀 해야할듯 한데...
react를 배워볼까.. 아님 vanilla js를 좁 집중적으로 더 파볼까...
'JavaScript > Node.JS' 카테고리의 다른 글
Express - Github Login - create user (0) | 2021.05.13 |
---|---|
Express - Github Log In (0) | 2021.05.12 |
Express - session on express (0) | 2021.05.12 |
Express - Loggin the User In (0) | 2021.05.12 |
Express - passport JS && Local Authentication (0) | 2021.05.12 |