티스토리 뷰
web : back-end/node js
[node js] 노드 js 리퀘스트와 리스폰스 기초 url, setHeader , write
무니웜테일패드풋프롱스 2020. 6. 14. 11:00request에서 url 가져오기
- localhost:3000 ___ 에서 ___의 부분을 가져온다.
- 아무것도 안써있으면 '/' 로 표시된다.
- 인자로 받아온 request 객체 에서 url 객체를 가져와, 변수에 저장한다.
const url = req.url;
if ( url === '/' ) ....
response의 setHeader와 write 메서드를 통해 응답하기
- 인자로 받은 response 객체의 setHeader 메서드를 통해 write 메서드의 컨텐츠 타입을 정할 수 있다.
- 컨텐츠 타입을 html로 정했다면, wirte 메서드 내부에 html 소스코드를 삽입하여 html 소스를 응답(response)할 수 있다.
- write의 마지막엔 꼭 res .end() 메서드를 실행해서 write 메서드를 실행한 것을 전송해주어야 한다.
- 따라서 res.end() 이후에 다시 write을 하면 오류가 발생한다.
const http = require('http'); // http 객체를 가져온다.
const server = http.createServer((req,res)=>{ //http 객체로부터 서버를 만들어서 저장해놓는다.
const url = req.url;
const method = req.method;
if( url === '/') {
res.setHeader('Content-Type', 'text/html');
res.write( '<html>');
res.write( '<head><title>Enter Button</title> </head>');
res.write( '<body><form action="/message" method="POST"><input type="text" name="message"><button type="submit">Send</button></form></body>');
res.write( '</html>');
return res.end(); //end를 지점으로 res.write한 것을 클라이언트에게 보낸다.
//return 하는 이유는 아래 코드를 실행하지 않고 /message로 post하기 위해서이다.
//return하지 않으면 message로 post되지 않고 아래 코드가 실행된다.
}
res.setHeader('Content-Type', 'text/html');
res.write( '<html>');
res.write( '<head><title>Hello!</title> </head>');
res.write( '<body><h1>hello from node js </h1></body>');
res.write( '</html>');
return res.end();
});
server.listen(3000);
'web : back-end > node js' 카테고리의 다른 글
[node js] Express: 미들웨어를 통해 다른 path(route) 처리하기 (0) | 2020.06.15 |
---|---|
[node js] 노드 js의 이벤트 루프 구조 (0) | 2020.06.14 |
[node js] 노드 js의 비동기 실행 이해하기 (0) | 2020.06.14 |
[node js] POST로 받은 데이터를 파싱하여 파일에 저장하기 , ReDirection (0) | 2020.06.14 |
[node js] 노드 js 서버 만들기 (0) | 2020.06.14 |
댓글