메인 화면에서 모임을 클릭하면 해당 모임에 대한 디테일 페이지를 모달창으로 띄울 예정이다. * 모임별 디테일 페이지 URI : /clubs/:id (GET) 1. controllers/userController.js const express = require("express"); const checkAuth = require("../middlewares/checkAuth"); const router = express.Router() const clubService = require("../services/clubService") // 모임별 디테일 페이지 router.get("/:id", checkAuth, async (req, res) => { const clubId = req.params.id con..
어드민 페이지는 따로 만들지 않아서 모임들은 DB에 임의로 등록해놨다. 유저에 따라 모임 가입 상태나 관심 목록이 다르기 때문에 사용자별로 모임을 불러왔다. * 회원가입 URI : /clubs 1. controllers/clubController.js const express = require("express"); const checkAuth = require("../middlewares/checkAuth"); const router = express.Router() const clubService = require("../services/clubService") // 모임 불러오기 router.get("/", checkAuth, async (req, res) => { const userId = req...
middlewares/checkAuth.js const jwt = require('jsonwebtoken'); const jwtSecret = "abcdsfas1234sdefg1234567" const checkAuth = (req, res, next) => { let token = req.headers["authorization"]; // * if문으로 token 존재 여부에 따라 분기 if(token) { const decodedToken = jwt.verify(token, jwtSecret) req.user = { id: decodedToken.id } next() } else { req.user = { id: null } next() } } // * 모듈화 module.exports = check..
회원가입과 로그인 페이지는 동작할 정도로만 간단하게만 구현했다. 사용자의 아이디, 패스워드, 이름만 받고 다른 정보들은 따로 받지 않는다. 또한 중복 체크라던가 글자수 제한 등의 조건들을 적용하지는 않았다. * 회원가입 URI : /users/login 1. controllers/userController.js const express = require("express") const router = express.Router() const userService = require("../services/userService") // 로그인 router.post("/login", async (req, res) => { const uid = req.body.uid const upw = req.body.upw ..
회원가입과 로그인 페이지는 동작할 정도로만 간단하게만 구현했다. 사용자의 아이디, 패스워드, 이름만 받고 다른 정보들은 따로 받지 않는다. 또한 중복 체크라던가 글자수 제한 등의 조건들을 적용하지는 않았다. * 회원가입 URI : /users/join (POST) 1. controllers/userController.js const express = require("express") const router = express.Router() const userService = require("../services/userService") // 회원가입 router.post("/join", async (req, res) => { const uid = req.body.uid const upw = req.bod..

폴더 생성 레이어드 아키텍처에 따라 용도별로 폴더를 분류했다. 이번 모임모임 프로젝트에는 크게 user 관련, 모임(club) 관련 2가지로 나눌 수 있다. controllers/ : 라우팅 관리 libs/ : 라이브러리 middlewares/ : 미들웨어 services/ : 실제 데이터베이스 다루는 부분 server.js : 메인 파일 1. server.js const express = require("express") const app = express() const cors = require("cors") const bodyParser = require("body-parser") const clubController = require("./controllers/clubController") con..
프로젝트 이름 모임모임 프로젝트 설명 동호회 회원을 모집하는 플랫폼 사이트 주제 선택 배경 평소 다양한 취미 생활을 하고, 경험하는 것을 좋아하는만큼 동호회나 취미 모임에 관심이 많았다. 첫 프로젝트인만큼 관심 있는 주제를 하고 싶었다. 관련된 웹/앱이 거의 없기 때문에 실제로 서비스를 한다고 해도 좋은 주제라 생각했다. 목표 하나의 포트폴리오 완성 그동안 학습한 언어, 내용들을 실제 프로젝트에 적용해보며 체화하기 사용 기술과 선택 이유 Node.js 퍼블리싱을 배웠기 때문에 javascript를 어느 정도 알고 있었고, 자연스럽게 그 언어로 개발을 하게 되었다. javascript의 런타임이 Node.js이기 때문에 사용했고, 특별히 어떠한 장점 때문에 사용했다기보다는 학습의 목적이 가장 컸다. Exp..