개발공부일지
NodeJS - RESTful API, 회원가입 (Front, Back 분리) 본문
목차
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를 열자...
'NodeJS' 카테고리의 다른 글
NodeJS - DTO (0) | 2023.10.24 |
---|---|
NodeJS - ORM, Sequelize, User CRUD (1) | 2023.10.23 |
NodeJS - Server 분리 (Front, Back), CORS Error (1) | 2023.10.19 |
NodeJS - 의존성 주입(DI), 제어의 역전(IoC), Overring, overloading (0) | 2023.10.15 |
NodeJS - Database - JWT 사용해서 LOGIN 구현하기 ② (0) | 2023.09.25 |