• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

res.end() 앞 return 여부의 차이

23.01.25 17:03 작성 조회수 1.24k

0

아래는 res.end()앞에 return이 없는 경우입니다.

http.createServer(async (req, res) => {
        res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
        const data = await fs.readFile('./http.html');
        res.end(data);
      }

 

아래는 res.end()앞에 return이 없는 경우입니다.

http.createServer(async (req, res) => {
  
        const data = await fs.readFile('./restFront.html');
        res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
        return res.end(data); // res.end() 앞에 return이 있음.
      }

위 예시 말고도 코드 여러 군데에서 어떤건 return 이 들어가고 안들어가고 하더라고요. return이 있고 없고에 어떤 차이가 있는 걸까요?

감사합니다.

답변 2

·

답변을 작성해보세요.

3

기본적으로 함수의 끝에 있는 return은 있으나 없으나 차이는 없으나 명시적으로 저 부분에서 함수가 끝난다는걸 표시하는 겁니다. 그래서 실수로 res.end가 여러 번 호출되는 것을 막을 수 있습니다.

sh lee님의 프로필

sh lee

질문자

2023.02.07

답변 감사합니다!!

0

디오님의 프로필

디오

2023.01.31

res.end(data)가 실행되면 클라이언트에 응답을 보내고 요청/응답 싸이클을 종료하니까 return 필요 없습니다.

가독성 측면에서 코드 작성자 맘대로 하면 됩니다.

구체적으로 설명드리자면
if () {
res.send();
}
res.send();
같은 상황을 방지하는 것이라 보시면 됩니다. 이러면 에러나니까요.
if () {
return res.send();
}
return res.send();
이러면 절대 에러날 일이 없죠.