개발 학습일지(TIL)

TIL : express.js Request와 Response

Veams 2022. 12. 20.

내일배움캠프 Today I Learned

@ 하루 정리

Node.js와 express.js 는 지난 주부터 제공받은 영상을 보고 학습을 했는데,

공부하는 내용, 특히 라우터 부분이 이해가 잘 안 가서 곤란에 처해 있었다.

무작정 진도를 빼야하는데, 이해는 안 가서 이건 안 되겠다 싶어서 오늘 생활코딩 강의를 찾아냈다.

 

오늘은 지난주부터 공부한 내용을 다시 좀 정리하는 중이다.

소스코드가 어떻게 작동하는지 기초부터 짚으면서 공부하는데 도움이 많이 되는듯. 

@ 학습한 내용

헷갈렸던 내용 :

서버를 실행시키기 위해 express.js를 작성하다보면

콜백함수로 (req, res) => 표시되어 있는 것이 있다.

이것을 매우 자주 작성하는데,

그런데 나는 이 내용이 무엇인지, 대체 왜 사용하는지... 강의를 계속 보면서도 뭔 내용인지 헷갈려서 답답했다.

 

가령, 예시를 본다.

// 회원가입 처리
const User = require("./models/user.js");

router.post("/users", async (req, res) => {
    const {nickname, email, password, confirmPassword} = req.body;

    if (password !== confirmPassword) {
        res.status(400).json({
            errorMessage: "passoword와 confirmPassoword가 일치하지 않습니다."
        });
        return;  
    }

    const existUser = await User.findOne({
        $or: [{email: email}, {nickname:nickname}]  
    });
//하나라도 일치하는 것이 있으면 existUser에 값이 할당

//existUser 값이 존재한다면...
    if(existUser){   
        res.status(400).json({
            errorMessage: "Email이나 Nickname이 이미 사용 중입니다."
        });
        return;
    }

    const user = new User({nickname, email, password});
    await user.save();
    
//데이터 생성됐다는 의미로 status(201)로
    res.status(201).json({});  
});
 

Request(req), Response(res)란?

 

클라이언트에서 서버로 어떤 요청을 하고, 서버는 이에 대해 어떤 응답을 하는데

express에서는 이러한 (req, res) 표기는 클라이언트와 서버간의 요청/응답의 내용에 대해서 작성한 것이다.

 

Request: 클라이언트가 서버에게 전달하려는 정보메시지를 담는 객체를 의미한다.

Response : 클라이언트로부터 서버가 전달 받은 데이터를 응답하는 메시지를 전송시켜 주는 객체

 

즉, req는 클라이언트의 어떤 요청에 대해 서버가 다룰지,

res는 그 요청에 대해 서버가 어떤 응답을 클라이언트로 처리해줄지 안내한다.

댓글