만능재주꾼

[Node.js 교과서] 9장 익스프레스로 SNS 서비스 만들기 - 간단한 코드 분석 본문

💻 Node.js

[Node.js 교과서] 9장 익스프레스로 SNS 서비스 만들기 - 간단한 코드 분석

유고랭 2021. 2. 24. 17:48

‼️코드 분석에 들어가기에 앞서 각 미들웨어의 역할 소개하기‼️

 

✏️ 미들웨어

  • morgan: 요청과 응답을 한 번에 볼 수 있는 미들웨어
  • static: 정적인 파일을 제공하는 라우터 역할, 함수의 인수로 정적 파일들이 담겨 있는 폴더 지정
  • body-parser: 요청 본문에 있는 데이터를 해석하여 req.body 객체로 만들어주는 미들웨어
  • cookie-parser: 요청에 동봉된 쿠키를 해석해 req.cookies 객체로 만들어주는 미들웨어
  • express-session: 세션 관리용 미들웨어로, 특정 사용자를 위한 데이터를 임시적으로 저장할 때 유용
  • multer: 여러 가지 파일들을 multipart 형식으로 업로드할 때 사용하는 미들웨어

✏️ 미들웨어 사용법

  • app.use() 사용

🗂 routes 폴더

  : 데이터 전송 시 최적의 경로를 만들기 위해 사용

  ✔️ page.js

  • 회원가입 로그인 여부 확인
  • 내 프로필 클릭 시 로그인 여부 확인
  • 기본 화면에 게시글 표시
  • 해시태그 존재 여부 확인 > 있으면 배열에 저장

  ✔️ auth.js - 승인 관리

  • 회원가입 승인 > 같은 이메일 존재 여부 확인 > 존재하면 에러 발생, 존재하지 않으면 데베 생성
  • 로그인 승인 > authError가 없고, user 존재하면 로그인 성공
  • 로그아웃 > 로그아웃 및 객체 내용 삭제

  ✔️ middlewares.js - 로그인 관리

  • isLoggedIn과 isNotLoggedIn으로 로그인 여부 확인해 코드 실행

  ✔️ post.js - 게시글 관리

  • 게시글을 어디에, 어떤 이름으로 저장할지 정함
  • 이미지 업로드
  • 게시글 업로드 처리

  ✔️ user.js - 팔로우 관리

  • user가 팔로우 누른 사용자가 데이터베이스에 존재하면 팔로우 실행

🗂 models 폴더

  : 데이터베이스 관리

  ✔️ index.js

  • passport.serializeUser는 로그인 성공 시만 실행 > 사용자 아이디 가져옴
  • passport.deserializeUser는 매 요청 시에 실행 > 아이디 찾고, 팔로워와 팔로잉 목록 찾음

  ✔️ post.js - 게시글 데이터 관리

  • 해당 사용자의 게시글 데이터  + 게시글과 사용자는 1:N 관계, 게시글과 해시태그는 N:M 관계

  ✔️ user.js - 사용자 데이터 관리

  • 사용자 데이터 정보(이메일,이름,닉네임 등)   +다른 사용자와 N:M 관계

  ✔️ hashtag.js - 해시태그 데이터 관리

  • 해시태그 이름을 배열에 저장

🗂 passport 폴더

  : 클라이언트의 자격 요청

  ✔️ index.js

  • 로그인 시 사용자 아이디 찾아 passport.authenticate 콜백
  • 매 요청 시 사용자 정보 조회 > 팔로잉, 팔로워 목록 함께 조회

  ✔️ kakaoStrategy.js - 카카오 로그인 관리

  ✔️ localStrategy.js - 로컬 로그인 관리

 

Comments