Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

개발공부일지

NodeJS - RESTful API, 회원가입 (Front, Back 분리) 본문

NodeJS

NodeJS - RESTful API, 회원가입 (Front, Back 분리)

보람- 2023. 10. 20. 16:29

 


목차

1. 회원가입 만들기

2. RESTful API 명세 

3. 예외처리


 

 

1. 회원가입 만들기

 

-  front 

    - form element에 submit eventListener해서 유저의 정보를 객체에 담고

    - axios를 사용해서 유저 정보를 바디에 담아 POST 요청을 한다. →  localhost:4000/users

    - 가입이 된다면 / 으로 돌아가게하고, 가입이 되지 않는다면 aletr으로 Error Message를 알려준다.

  

 

-  back

   - DB연결 npm install mysql2

   - database, table(users) 생성하고 pool connection을 한다.

   - app.post('/users')에서 DB에 INSERT를하고 받은 결과물을 SELECT(유저의 아이디, 이름만) 로 다시 넘겨준다

      - 나중에 front에서 넘겨받은 유저 아이디, 이름으로 ~~님 환영합니다등의  효과를 줄수도있으므로

   - try, catch문을 사용해서 이미 있는 유저의 정보라면 Error Message를 날려준다.

  

   

 

 

2. RESTful API 명세 

 

 

- Users 

   - 예전엔 /users/modify/ , /users/userinfo 이렇게 적었던것을 RESTful

// 회원가입
app.post("/users")

// 로그인하기는 users 빼고 그냥 login
app.post("/login")

// 유저의 리스트보기
app.get("/users")

// 해당의 유저의 프로필보기
app.get("/users/:id")

// 해당유저 프로필 수정하기
app.post("/users/:id")

 

 

- boards

// C
POST /boards/

// R
GET /boards/
GET /boards/:id

// U
PUT /boards/:id

// D
DELETE /boards/:id

 

- API 명세서 swagger를 많이 사용하는데 nestjs를 사용한다면 controller를 쓰면 스웨거에 생성된다고함!

- 요청을 보낼때 GET, POST말고도 PUT, DELETE

 

 

 

 

3. 예외처리

class HttpException extends Error {
    constructor(message, error, statusCode) {
        super(message);
        this.error = error;
        this.statusCode = statusCode;
        this.timestamp = new Date().toLocaleString("en-US", {
            timeZone: "Asia/Seoul",
            hour12: false,
        });
    }
}

module.exports = HttpException;
app.use((error, req, res, next) => {
    console.log(error);
    console.log(error.message);
    res.status(error.statusCode).json(error);
});

- Error Message, statusCode 

 

 

 


※ next(e) 빼먹고 에러메세지 찾지말쟈... 

파일위치 확인하고 node server를 열자...