대기업을 향한 디벨롭 블로그

response 종류를 다루는..(쓰는족족넣어보자) 본문

Node.js

response 종류를 다루는..(쓰는족족넣어보자)

MHY.PRO 2022. 2. 27. 00:17

여기는 서버에서 클라이언트의 요청에 응답을하는 res종류와 쓰는법에 대해 정리를 해놓을것이다.

 

1.res.send()

2.res.sendFile()

1. res.send()

1  app.get('/',function(req,res)=>{
	  res.send('안녕하세요 send해보겠습니다').
   })

 

res.send() -> 말그대로 보내는것이다. 사용자에게. 문자열을 보내게되면 브라우저에 저 문자열('안녕하세요 send해보겠습니다') 이 그대로 뜨게된다. 브라우저 소스코드를 보면 저 문자열은 html <body>태그 안에 문자열그대로 삽입된걸 볼수있을 것 이다. 그리고 자동으로 utf-8인코딩해준다는 장점이있다.

1  app.get('/',function(req,res)=>{
	  res.send('안녕하세요 send해보겠습니다').
      	  res.send('안녕히계세요 send해봤습니다').
   })

res.send()는 2번쓸 수 없다. 맨처음쓴 res.send() 만 가능하고 그뒤에는 무시된다.

 

-------------------------------------------------------------------------------------------------------------------------------

 

2. res.sendFile()

main.html ->   main.html파일이 있다고치자

<html>
	<head>
	</head>
	<body>
		<h1>안녕하세요 html입니다</h1>
	</body
</html>

사용자에게 이 html파일을 부라우저에 띄어주려면,

1  app.get('/',function(req,res)=>{
	  res.sendFile(__dirname+'public/main.html');
   })

서버에서는 이렇게 처리하면된다. 그럼 사용자가 localhost:5050에 접속하게되면 main.html을 보게된다.

 

여기서 중요한건 res.sendFile할때는 상대경로(현재폴더위치에서의 경로)가 아닌 절대경로를 인자(괄호안의값)로 보내야한다. 그래서 맨앞의 __dirname을 써주는이유는 __dirname은 현재의폴더의 경로라고 볼수있다.  main.html파일은 public폴더안에있기 때문에 __dirname+'public/main.html'을 해주므로서 현재폴더경로안에->퍼블릭안에->main.html을 클라이언트에게 보낼 수 있다.. __dirname이 궁금하다면 console.log(__dirname) 해서 경로를 확인해봐라!

 

sendFile() = 절대경로필요    __dirname = 현재의폴더경로    pulic폴더안에main.html

sendFile(__dirname+/public/main.html);

 

 

--------------------------------------------------------------------------------------------------------------------