본문 바로가기
Javascript/Node.js

Rest API와 라우팅

by 모스키토끼 2019. 11. 6.

REST API는 주소 외에도 HTTP 요청 메서드라는 것을 사용한다.

 

요청 메서드 종류

GET, POST, PUT, PATCH, DELETE

 

예시 서버 코드)

//restServer.js
const http = require('http');
const fs = require('fs');

const user = {}

http.createServer((req, res) =>{
	if(req.mothod === 'GET'){
        if(req.url === '/'){
            return fs.readFile('./restFront.html', (err, data) => {
                if(err) {
                    throw err;
                }
                res.end(data);
            });
        }else if(req.url === '/about'){
            return fs.readFile('./about.html', (err, data) => {
                if(err) {
                    throw err;
                }
                res.end(data);
            });
        }else if(req.url === '/users'){
            return res.end(JSON.stringify(users));
        }
        return fs.readFile('.${req.url}', (err, data) => {
            if(err){
                res.writeHead(404, 'NOT FOUND');
                return res.end('NOT FOUND');
            }
            return res.end(data);
        });
    }else if(req.mothod === 'POST'){
        if(req.url === '/users'){
            let body = '';
            req.on('data', (data) => {
                body += data;
            });
            return req.on('end', () =>{
                console.log('POST body: ', body);
                const {name} = JSON.parse(body);
                const id = Data.now();
                users[id] = name;
                res.writeHead(201);
                res.end('등록 성공');
            });
        }
    }else if(req. mothod === 'PUT'){
        if(req.url.startsWith('/users/')){
            const key =req.url.split('/')[2];
            let body = '';
            req.on('data', (data) => {
                body += data;
            });
            return req.on('end', () =>{
                console.log('put body: ',body);
                usrs[key] = JSON.parse(body).name;
                return res.end(JSON.stringify(users));
            });
        }
    }else if(req.mothod === 'DELETE'){
        if(req.url.startsWith('/users/')){
            const key = req.url.split('/')[2];
            delete users[key];
            return res.end(JSON.stringify(users));
        }
    }
    res.writeHead(404,'NOT FOUND');
    return res.end('NOT FOUND');
})
    .listen(8085,() =>{
        console.log('8050번 포트에서 서버 대기 중입니다.');
    });

서버를 돌려 브라우저와 통신을 했을 때 나오는 요청 내용

  • Name - 요청 주소
  • Mothod - 요청 메서드
  • Status - HTTP 응답 코드
  • Protocole - HTTP 프로토콜
  • Type - 요청의 종류(xhr은 AJAX 요청을 의미)

'Javascript > Node.js' 카테고리의 다른 글

NodeJS의 특징  (0) 2020.06.09
Https와 Http2  (0) 2019.11.06
쿠키와 세션 이해하기  (0) 2019.10.22
이벤트 이해하기  (0) 2019.10.19
요청과 응답 이해하기(서버구현)  (0) 2019.10.19

댓글