[Backend] node.js & express 서버 구축하기

thousand_yj·2023년 7월 21일
0

Willing 프로젝트

목록 보기
11/18

프로젝트 서버 요구사항

  1. 로그인 처리
  2. 유저가 생성한 데이터를 DB에 저장하기
  3. 새로고침할 때마다 필요 데이터 반환하기 (캐싱?)
  4. 웹 호스팅

언어 및 환경설정

  • node.js, express 사용
  • mongoDB 사용



서버 생성하기

npm init
npm install express
npm install --save-dev nodemon

위의 코드를 터미널에 입력하여 node.js 서버를 생성하자. nodemon은 코드의 변경이 일어날 때마다 알아서 재시작해주는 라이브러리이다.

가장 메인 엔트리 포인트로 app.js 파일을 생성해주고 포트를 5000번에서 열었다. Rest API 방식을 사용하므로 url & 요청방식별로 라우팅처리를 해줘야 하는데, 메인 app.js 파일에서 라우팅을 작성하면 코드가 너무 길어지므로 따로 쪼개는 것이 좋다.

const express = require("express");
const app = express();

app.listen(5000, () => console.log("Server is running at 5000 ✨"));

에러 처리

만약 에러가 있는 경우, 기본적인 에러 처리 로직을 app.js에 에러 함수 처리 미들웨어로 넣어주는 것이 좋다.
이 때 단순히 에러코드만 설정하여 응답을 보내는 것이 아니라, REST API에서 관습적으로 해주는 방식을 따라가려고 한다. API에서 보내는 모든 오류는 message 프로퍼티가 있어야 클라이언트가 해당 오류를 사용자에게 보내줄 수 있다. 따라서 여기에서도 에러가 나면 에러가 발생했다는 메세지를 전송할 수 있도록 다음과 같이 코드를 작성하였다.

app.use((error, req, res, next) => {
    if (res.headerSent) {
        return next(error)
    }
    res.status(error.code || 500);
    res.json({message : error.message || "An unknown error occurred!"});
})



1. 로그인 & 회원가입 처리하기

  • 회원가입 요청이 오는 경우 : DB에 이메일, 닉네임, 패스워드 저장하기
  • 로그인 요청이 오는 경우 : DB에서 일치하는 이메일, 패스워드가 있는지 보고 로그인 처리

2. 유저가 생성한 데이터를 DB에 저장하기

  • 유저별로 데이터 저장하기
    • Create, Update, Delete 업데이트

3. 새로고침할 때마다 필요 데이터 반환하기 (캐싱?)

  • 유저별로 요청한 데이터 반환하기
    • Read
profile
함께 일하고 싶은 개발자가 되기 위해 노력합니다. 코딩테스트 관련 공부 및 이야기는 티스토리에도 업로드되어 있습니다.

0개의 댓글