Page 14 -
P. 14

http 서버가 있어야 웹 브라우저의 요청을 처리할 수 있으므로 http 모듈을 사용했습니다. http

                        모듈에는 createServer 메서드가 있습니다. 인자로 요청에 대한 콜백 함수를 넣을 수 있습니다.
                        요청이 들어올 때마다 매번 콜백 함수가 실행됩니다. 따라서 이 콜백 함수에 응답을 적어주면 됩
                        니다.                                                                               4

                        createServer의 콜백 부분을 보면 req와 res 매개변수가 있습니다. 보통 request를 줄여 req라고
                        표현하고, response를 줄여 res라고 표현합니다(매개변수의 이름은 마음대로 바꿔도 되는 것 아                          http 모듈로 웹 서버 만들기
                        시죠?). req 객체는 요청에 관한 정보들을, res 객체는 응답에 관한 정보들을 담고 있습니다.

                        아직은 코드를 실행해도 아무 일도 일어나지 않습니다. 요청에 대한 응답도 넣어주지 않았고 서버
                        와 연결하지도 않았기 때문입니다. 다음 예제에서 응답을 보내는 부분과 서버 연결 부분을 추가해

                        보겠습니다.

                         server1.js
                         const http = require('http');

                         http.createServer((req, res) => {
                           res.write('<h1>Hello Node!//h1>');
                           res.end('<p>Hello Server!//p>');
                         }).listen(8080, () => {
                           console.log('8080번 포트에서 서버 대기 중입니다!');
                         });


                        createServer 메서드 뒤에 listen 메서드를 붙이고 클라이언트에게 공개할 포트 번호와 포트 연

                        결 완료 후 실행될 콜백 함수를 넣어줍니다. 이제 이 파일을 실행하면 서버는 8080 포트에서 요청
                        이 오기를 대기합니다.

                        listen 메서드에 콜백 함수를 넣는 대신, 다음과 같이 서버에 listening 이벤트 리스너를 붙여도
                        됩니다. 추가로 error 이벤트 리스너도 붙여보았습니다.

                         server1-0.js
                         const http = require('http');

                         const server = http.createServer((req, res) => {
                           res.write('<h1>Hello Node!//h1>');
                           res.end('<p>Hello Server!//p>');
                         });
                         server.listen(8080);





                                                                                                      133




         node_06.indd   133                                                                     2018-07-20   오전 10:26:42
   9   10   11   12   13   14   15   16   17   18   19