Programing/Node.js

nodejs server 서버 만들기 (기본)

리커니 2017. 12. 5. 13:40
반응형

 

nodejs server 서버 만들기 (기본)

  

이번 포스팅에서는 nodejs를 활용해 간단한 서버를 구현하는 방법을 알아보도록 하겠습니다.

개발툴은 이전에 포스팅한 ATOM을 사용하도록 하겠습니다.

 

Link : node.js를 위한 무료 텍스트 에디터 추천 ATOM

 

nodejs 서버를 만들기 위해선 기본 모듈인 http가 필요합니다.

http로 서버객체를 생성해 클라이언트의 요청에 응답할 수 있습니다.

 

http 모듈을 사용하기 위해선 require를 사용해 http 모듈을 import 해야 합니다.

 

1
const http = require('http');
cs

 

이렇게 http 객체를 생성하면 http의 기능을 사용할 수 있는데요.

createServer function을 활용해 서버를 생성해 보겠습니다.

 

1
2
3
4
5
6
const http = require('http');
 
const server = http.createServer(function(req, res){
  res.writeHead(200, {'Content-Type''text/plain'});
  res.end('Hello, world');
});
cs

 

createServer 의 콜백함수의 매개변수로 request와 response를 받아 처리 할 수 있는

server 객체를 생성했습니다.

 

객체는 생성되었지만 실행은 되지 않은 상태이죠.

서버를 실행하기 위해선 listen function의 호출이 필요합니다.

 

1
2
3
4
5
6
7
8
9
const http = require('http');
 
const server = http.createServer(function(req, res){
  res.writeHead(200, {'Content-Type''text/plain'});
  res.end('Hello, world');
});
 
server.listen(3000);
console.log('localhost 의 3000번 포트로 서버를 실행해');
cs

 

listen함수의 매개변수는 포트 입니다. console.log에 찍히는 것과 같이

localhost 의 3000번 포트로 서버를 실행하게 되는 것입니다.

 

그럼 서버를 실행해 보도록 하죠.

 

 

해당 파일을 node 명령어로 실행해서 서버가 실행된 상태입니다.

 

 

 

브라우져에 localhost:3000 을 요청을 해보도록 하죠.

 

서버가 실행되어 요청에 대한 응답으로 Hello, world가 찍혔습니다.

 

nodejs를 활용해 정말 간단하게 서버가 구현되었습니다.

기존에 서버사이드 언어들은 tomcat, IIS 와 같은 WAS 가 필요하지만

nodejs는 WAS 없이 서버가 구동되었네요!

 

그럼 추가적으로 각 경로 요청에 대한 다른 응답을 처리하는 방법을 알아보겠습니다.

별도의 모듈은 사용하지 않고 기본 nodejs로 구현하겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const http = require('http');
 
const server = http.createServer(function(req, res){
  let url = req.url;
  console.log(url);
  let returnText = '';
  if (url=='/'){
    returnText = 'Hello, world';
  }else if(url=='/javascript'){
    returnText = 'Hello, ECMAScript';
  }else if(url=='/nodejs'){
    returnText = 'Hello, nodejs';
  }
  res.writeHead(200, {'Content-Type''text/plain'});
  res.end(returnText);
});
 
server.listen(3000);
console.log('localhost 의 3000번 포트로 서버를 실행해');
 
cs

 

(서버를 재실행 한 후 실행하세요)

request 의 url 을 받아서 각각의 url 별로 다른 리턴을 해주었습니다.

 

request의 url 에 요청 URL 문자열이 들어있는 것을 확인하실 수 있습니다 .(req.url)

이처럼 다른 응답에 따른 각각의 응답 처리도 가능합니다.

 

반응형