(수근수근)

[NodeJS] Hello Node 본문

type & Javascript

[NodeJS] Hello Node

InformationFarm 2021. 10. 3. 15:05

해당 내용은 인프런의 테스트주도개발(TDD)로 만드는 NodeJS API 서버를 정리한 내용입니다.

 

node에서 제공하는 hello world노드버전 코드

노드의 헬로월드 코드 링크: https://nodejs.org/dist/latest-v6.x/docs/api/synopsis.html

//index.js
const http = require('http');

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

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

서버실행

  • 해당폴더 위치에서 node index.js 명령어 실행
  • 다른 터미널창을 하나 더 띄운 후 아래 명령어 입력
    • curl -X GET "localhost:3030" ( window )
    • curl -X GET 'localhost:3030' ( mac )

hello node코드 읽어보기

  • IP, PORT 설정
  • const hostname = '127.0.0.1'; const port = 3000;
  • 서버 만들기
    • 클라이언트가 요청을 하면 콜백함수가 요청이 된다.
    • statusCode =200 성공을 의미
    • end('Hello World\n'); 엔드함수를 통해 데이터를 전달해준다.
  • //콜백함수를 server라는 변수에 할당 const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); });
  • 서버를 요청대기 상태로 만듬(listen함수)
  • server.listen(port, hostname, () => { // 백틱을 사용하여 문자 및 변수 처리 console.log(`Server running at http://${hostname}:${port}/`); });

라우팅 추가하기

지금까지 만든 서버는 루트경로로만 접속할 수 있는 서버입니다.

무슨 url을 사용하더라도 이 서버는 'hello world' 만 응답합니다.

여기에 새로운 API를 추가하기 위해서는 라우팅을 추가하여야 합니다!

  • 라우팅을 추가하기 위해서는?
    • req 객체의 url은 클라이언트의 요청정보가 담깁니다.
    • req.url을 통해서 라우팅 기능을 구현합니다.
const server = http.createServer((req, res) => {

  console.log(req.url);  //클라이언트의 요청정보가 담깁니다

  if(req.url ==='/'){
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World\n');
  }else{
    res.statusCode = 404;
    res.end('Not found\n'); 
  }
});

→ 결과

-v옵션을 통해서 더 자세한 정보를 볼 수 있습니다.

이런식으로 API를 추가해서 개발할 수 있습니다
하지만, 이런식으로 계속 진행하게 되면 반복되는 코드가 많아지고, 한 코드에 많은 것을 담게 됩니다.

이것을 해결하기 위해 Express를 다음에 활용해봅니다.

'type & Javascript' 카테고리의 다른 글

[NodeJS] REST API란  (0) 2021.10.03
[ NodeJS ] Express 기초  (0) 2021.10.03
[NodeJS] Nodejs 기초  (0) 2021.10.01
[JS] JSON데이터 CSV파일로 저장  (0) 2021.09.26
[JS] 콜백함수  (0) 2021.09.15
Comments