[ 기본 셋팅 ]
- npm init 으로 package.json 파일을 만든 뒤 scripts 속성의 기본 명령어를 start: nodemon app으로 바꿔 놓는다.
- 필요 패키지들을 설치 할건데 npm i express, express-session, cookie-parser, morgan, multer, dotenv, nunjucks 설치
- npm i -D nodemon 으로 코드 수정시 자동으로 서버 제가동 하게 만들고
- npm i sequelize, sequelize-cli, mysql2, bcrypt, passport, passport-local 그리고 카톡로그인 할거면 passport-kakao 까지 해서 설치
- npx sequelize init 으로 로컬 전역설치 하지 않고 본 폴더에 config, migrations, models, seeders 폴더를 새로 만든다
- app.js 서버 파일을 만든 다음, 수동으로 views, routes, public, passport, controllers, middlewares 폴더를 만든다.
무조껀 이렇게 해야 한다가 아님
제작할 웹 서비스에 따라
폴더명이던지 설치가 될 패키지들이 다르거나
추가되거나 함
만약 API를 사용한다면 api폴더가 생기겠지
[ 폴더별 역활 ]
config/config.json | |
![]() |
![]() |
사용하는 DBMS의 접근 root 정보가 들어간다 - development : 개발용 - test : 테스트용 - production: 배포용 |
controllers | ||
![]() |
auth.js | page.js |
![]() |
![]() |
|
post.js | user.js | |
![]() |
![]() |
|
서버가 받은 특수 요청을 수행하는 곳 하나의 컨트롤러에는 여러 내부 라우팅 경로가 있을수 있으며 서로 다른 역활을 수행 한다 |
middlewares | ||
![]() |
![]() |
|
routes 폴더 안의 미들웨어에서 사용되는 것으로 여기서는 권한적인 문제를 만들어 부여하고 있다. 로그인이 필요한 부분일때 로그인을 한 상태일때 등으로 분류하여 동작하고 있다 |
models | ||
![]() |
hashtag.js | index.js |
![]() |
![]() |
|
post.js | user.js | |
![]() |
![]() ![]() |
|
DBMS에 연결할 모델을 불러와 똑같이만드는걸 말함 DB모델 설계라 하며 여기서 먼저 설계를 끝낸 다음 npx sequelize db:create 를 해주면 config.json에 설정해놓은 DB접근 정보 그 위치에 테이블이 생성이 된다. 만일 테이블의 구조를 바꾼다면 자동으로 바뀌진 않으므로 이땐 직접 DB 테이블을 열어 바뀐 부분을 수정해 서로 일치하게 맞춰줘야 한다 |
passport | ||
![]() |
index.js | kakaoStrategy.js |
![]() |
![]() |
|
localStrategy.js | ||
![]() |
||
서비스 이용에 있어 사용자 검증을 하는 마치 여권과도 같은 기능으로(이름도 Passport) 회원가입과 로그인 기능 구현에 있어 세션과 쿠키 처리같은 복잡한 기능들 간단하게 처리 해주는 역활이고 한마디로 로그인의 절차를 쉽고 확실하게 처리해준다 보면 됨. |
public | |
![]() |
|
클라이언트에게 던져줄 static 파일을 모아둔 곳으로 정적인 파일들을 여기다 넣으면 된다 CSS JS 이미지 등등 이곳에 넣으면 된다 |
routes | ||
![]() |
auth.js | page.js |
![]() |
![]() |
|
post.js | user.js | |
![]() |
![]() |
|
라우트 폴더엔 클라이언트의 요청 경로(path)를 보고 이 요청을 처리할 수 있는 곳으로 기능을 전달해주는 역할을 수행함. 클라이언트의 요청이 들어올시 그에 맞는 컨트롤러로 요청이 넘어가고 그곳에서 요청을 처리한 다음 route에서 응답만 수행한다 |
views | |
![]() |
![]() |
여기서 이제 클라이언트에게 보여줄 UI가 만들어지는 곳 아까의 public 폴더의 정적(static)파일들이 합쳐져 꾸며지고 유저에게 노출이 된다 앞에서 설치 했던 Nunjucks를 사용하여 페이지를 좀더 쉽고 수월하게 만드는 편이며 프론트엔드 작업자가 주로 여길 만지지않을까함. |
![]() |
.env | app.js |
![]() |
서버가 돌아가면 수행되는 곳으로 특정 주소로 요청 들어오면 작동하는 라우터들을 가져다 미들웨어로 만들어 여기서 수행들 한다 서버가가동되면 여기에 적은 포번호대로 작동 함 서버의 중추 중심 같은 아주 중요한 역활을 수행함 |
https://whaledowny.tistory.com/51
17)Nodejs_간이 SNS 서비스 만들기_(1) npm init, 각 필요 모듈설치, 미들웨어 설정, 각페이지 만들고, UI
실제 웹 서비스 제작에 들어가기 전.. 지금까지 했던걸 스킬들을 가지고 실제 SNS 웹 서비스를 만들거 로그인 사진 업로드 글 작성 해시태그 검색 팔로잉 등을 구현 해 볼거 프런트엔드쪽인 UI는
whaledowny.tistory.com
https://whaledowny.tistory.com/52
18)Nodejs_간이 SNS 서비스 만들기_(2)_DB 설계 및 셋팅
MySQL과 Sequelize로 DB 설정 할거 로그인 기능에는 유저 정보 테이블 글 포스팅에 필요한 개시글 테이블 해시태그 기능도 쓸거니깐 해시태그 테이블 팔로잉 팔로워 등도 쓰일거니깐.... 암튼 할게 많
whaledowny.tistory.com
https://whaledowny.tistory.com/53
19)Nodejs_간이 SNS 서비스 만들기_(3) passport 모듈로 로그인 구현
로그인.. 보안이 중요한 부분임 직접 구현 할 수도 있으나 세션과 쿠키처리등 복잡함 좀. 해서 검증된 모듈을 쓸 필요가 있음 PassPort 를 쓰는것! 근데 이게 뭔데? 요즘 SNS로그인도 하는데? 카카오
whaledowny.tistory.com
https://whaledowny.tistory.com/54
20)Nodejs_간이 SNS 서비스 만들기_(4) 카카오 로그인 구현,
https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 여기 가
whaledowny.tistory.com
https://whaledowny.tistory.com/57
21)Nodejs_간이 SNS 서비스 만들기_(5) multer 패키지 사용기, 마무리까지. . .(에러 드릅게 많군 ㅋ)
이미지 업로드 기능을 구현하고싶을때 이 모듈을 사용하면 된다 이 이미지 저장 할건지 서비스 특징에 따라 다르다 input 태그 통해 이미지 선택 시 바로 업로드 진행 할거고 업로드 된걸 다시 클
whaledowny.tistory.com
'Back-End Frameworks > Node.js' 카테고리의 다른 글
GET과 POST (0) | 2023.09.23 |
---|---|
22) nodejs_ 실시간 데이터를 주고받는 웹 소켓 통신 (0) | 2023.09.15 |
21)Nodejs_간이 SNS 서비스 만들기_(5) multer 패키지 사용기, 마무리까지. . .(에러 드릅게 많군 ㅋ) (0) | 2023.07.26 |
20)Nodejs_간이 SNS 서비스 만들기_(4) 카카오 로그인 구현, (0) | 2023.07.25 |
19)Nodejs_간이 SNS 서비스 만들기_(3) passport 모듈로 로그인 구현 (0) | 2023.07.24 |