Node.js로 웹서버 만드는 과정
1. WEB Browser에 주소를 입력하여 요청을 함 (->)
2. WEB Server가 그 요청에 따른 정보를 응답해 줌 (<-)
(+) Node.js는 WEB Server기능을 내장하고 있으므로 WEB Server로 사용된다.
간단한 실습
위 github 사이트에서 자료를 download하고 현재 우리가 만든 폴더 안에 모두 저장한다.
Atom으로 폴더에 main.js 파일을 만들고 위 웹 사이트의 코드를 붙여넣는다. 현재 코드를 모두 알 필요는 없다.
터미널에서 main.js를 실행한 후 아래 사이트에 아래 사이트에 들어가 본다.
들어가면 다음과 같은 화면이 뜬다.
하지만 ctrl+c를 눌러 프로그램을 종료한 후 다시 웹 사이트를 들어가보면 뜨지 않는다.
즉, Node.js는 현재 웹 서버로서 동작하고 있는 것이다.
우리가 전체 코드를 이해하진 못하지만, 다음과 같은 코드를 추가하여 웹 사이트를 다시 살펴보자.
1, 2, 3 버튼을 각각 누르면 다음과 같이 출력이 된다. __dirname + url 이 위 코드와 동일하기 때문이다.
- __dirname : C:\Users\nno3o\Desktop\사물지능 시스템\Nodejs 은 main.js 파일이 위치하고 있는 디렉토리이고,
- url : /1.html 은 사용자가 요청할 때 /1.html이 전달되기 때문이다.
즉, 우리는 접근할 때마다 JavaScript를 통해 __diranme + url 코드를 이용하여 우리가 읽어야 할 파일을 만든다.
fs.readFileSync 은 Node.js의 기능으로, 경로에 해당하는 파일을 읽어 그 값을 가져온다.
그리고 그것을 response.end() 안에 위치시킨다.
만약 코드를 위와 같이 변경하고 다시 실행시켜본다면
위와 같은 결과가 나온다.
주소를 1.html로 변경하면 결과가 이렇게 나온다.
즉, Node.js는 response.end()에 어떤 코드를 넣느냐에 따라 사용자에게 전달하는 데이터가 바뀐다. 이는 apach와 같은 웹 서버에서는 할 수 없고, Node.js, PHP, Django에서는 할 수 있다.
프로그래밍적으로 사용자에게 전송할 데이터를 생성한다는 것이 Node.js가 가진 힘이다.
'Back-End > Node.js' 카테고리의 다른 글
Node.js.7. JavaScript 문법 - Variable (0) | 2020.08.30 |
---|---|
Node.js.6. JavaScript 문법 - Number Data Type (0) | 2020.08.30 |
Node.js.4. 공부방법 (0) | 2020.08.30 |
Node.js.3. Node.js 설치 (0) | 2020.08.29 |
Node.js.2. Node.js의 장점 (0) | 2020.08.29 |