본문 바로가기
nodejs

[node.js] http 모듈로 간단하게 유저 API 서버 만들기

by jinbro 2017. 6. 5.
[알아야하는 것]
- ES6 arrow function
- Node.js module system : module, load
- 먼저 보면 좋은 게시글 : [node.js] 기본 - processing model, module system, async : http://jinbroing.tistory.com/139


[API 서버]
- 요청, 응답하는 서버


[사용할 내장 모듈 + 유저 API 서버 만들기]
- http 모듈
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
     if(req.url === '/'){
          res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
 
/* response txt */
res.end('Hello World\n');
      } else if(req.url === '/users') {
          res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('User list');
      } else{
res.statusCode = 404;
res.end('Not found\n');
      }
});

server.listen(port, hostname, () => {
     /* 요청 대기 메서드 */
     console.log(`Server running at http://${hostname}:${port}`);
});
- require : http 모듈 로드
- hostname, port : 서버 요청 시 필요
- http.createServer : http 서버를 생성하는 http 모듈의 함수
1) 파라미터로 함수를 받음 : 'request' 이벤트가 발생했을 때 자동으로 호출될 함수
2) requestListener(파라미터 함수) : request에 대한 response 세팅 - statusCode, Header(HTTP 응답 헤더), end(HTTP 응답의 끝)
3) 참고 api 문서 : https://goo.gl/wHrKYy, node.js는 5.x ES6 arrow function

- server.listen : 서버 객체의 메서드, 서버를 요청 대기 상태로 두는 메서드, 대기 상태로 들어가면 파라미터로 전달한 콜백함수 호출


[팁]
- 문자열 내부("" 큰 따옴표)에 자바스크립트 코드를 사용하려면 `(템플릿 문자열)을 사용하면 됨
const hostname = 'localhost';
const port = 3000;

console.log(`Server running at http://${hostname}:${port}`);


- API 문서 꼭 보자! : 콜백함수인 것도 있고, 리스너 함수일 수도 있음 : http.createServer 파라미터 함수



댓글