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 |
댓글