일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- chrome mobile debug
- Valid groups
- oracle
- Swing
- 프로젝트
- Tomcat
- C언어
- db
- spring
- MySQL
- C
- vue-cookies
- java
- 타임리프 리로드
- GUI
- 그룹별 유효성 검사
- devtools
- Thymeleaf
- CSS
- 프로그래머스
- sqlplus
- JavaScript
- js
- 톰캣
- 유효성 그룹
- 크롬 디버깅
- 코딩테스트연습
- node.js
- HTML
- CLASS
개발 기록
자바스크립트[node.js를 이용한 서버] 본문
node.js는 자바스크립트를 이용하여 서버를 구축하고, 데이터베이스와 연결도 가능하다는 장점이 있는데,
무엇보다 다양한 모듈을 자유롭게 사용할 수 있는 엄청난 확장성이 가장 큰 강점인 것 같습니다!
require( ) 명령어를 통해 내장모듈을 불러 사용할 수 있을 뿐더러 외부모듈도 다운로드만 하면 바로 사용가능합니다!
외부 모듈을 사용할 때는 터미널에 npm install 다운받을모듈명 을 입력하면 다운로드가 진행됩니다.
간단하게 서버를 구축해보면!
우선 server.js라는 이름으로 파일을 하나 생성합니다.
가장 기본적으로 서버 구축을 위해서는 require를 통해 http내장 모듈을 가져와야합니다.
그리고 저는 모듈을 http라는 변수에 담았습니다.
다음 server라는 변수안에 http모듈을 이용하여 서버객체를 생성했습니다.
서버를 생성할 때 익명함수 안에는 두 개의 파라미터가 존재하는데
첫 번째 파라미터 안에는
클라이언트 측의 요청 정보가 담겨 있습니다. //이를 request라는 이름의 변수에 담기
두 번째 파라미터 안에는
클라이언트에게 응답해줄 정보를 담겨 있습니다. //이를 response라는 이름의 변수에 담기
서버 객체를 생성하며 만든 익명함수 안 쪽은 서버가 가동 됐을 때 실행되는 부분으로,
response.end( )는 클라이언트에게 응답할 정보를 담는 곳입니다.
응답을 할 때는 머리와 몸 으로 나눠 응답을 하지만 지금은 몸을 담당하는 end()부터 사용을 하겠습니다.
//머리부분은 response.writrHead( )를 사용!
16번 줄에 위치한 server.listen( )은 아까 생성한 서버객체를 가동하는 명령어이고, 첫 번째에 적은 파라미터는
내가 사용할 포트번호를 의미합니다. 이때 주의할 점은 사용하면 안되는 포트번호들도 있고, 이미 할당 되어
있는 포트번호가 있기 때문에 피해서 사용해야 합니다.!!
server.listen( ) 안 쪽 익명함수는 서버가 가동되면서 실행됩니다!
즉, server.listen( )를 통해 서버를 가동하면 아까 생성한 서버 객체가 실행되게 됩니다.
이를 확인해보려면 터미널을 통해 서버파일이 존재하는 디렉터리로 이동해야 합니다.!!
cd : 디렉터리를 변경하는 명령어!
저는 day0409 디럭터리에 server.js파일을 생성했기 때문에 이동 후, node 서버파일명
명령어를 터미널에서 실행!
그럼 터미널 창에 server.listen( )에서 적었던 console.log()의 결과가 바로 뜨는 것을 확인할 수 있습니다.
이제 클라이언트 측에도 응답이 갔는지 확인하기 위해 브라우저를 키고 주소 창에
localhost:사용한포트번호 를 입력하면, response.end( )를 이용해 클라이언트에게 전달한 결과를 확인할 수 있습니다!.
간단하게 서버를 가동해봤습니다. 다음에는 외부모듈을 사용하고 설치하는 법을 배워오겠습니다!
아직 배우는 단계여서 내용이 정확하지 않을 수 있는 점! 양해 부탁드리고 참고하는 정도로만 봐주시면 감사하겠습니다!
'공부' 카테고리의 다른 글
바인드변수[node.js] (0) | 2021.04.27 |
---|---|
node.js 설치하기 (0) | 2021.03.31 |
자바스크립트[벽에 반사되는 공 생성] (0) | 2021.03.23 |
자바스크립트[class] (0) | 2021.03.23 |
자바스크립트[배열과 배열의 길이] (0) | 2021.03.15 |