http 프로토콜을 통해 클라이언트와 통신해서 API를 제공하는 주체를 뜻한다.
HTTP 서버는 요청이 있으면 반드시 응답이 있어야한다.
요청의 대한 응답이 없다면 클라이언트에서는 에러가 발생하는데 어떤 에러가 발생하는지는 알 수가 없게 된다.
이번 스프린트에서는 basic-server.js
에서 웹 서버 객체를 만들고, 서버 객체에 대한 내용은 request-handler.js
에 코딩한다.
//basic-server.js
const http = require('http');
const requestHandler = require('./request-handler.js');
const PORT = 3000;
const ip = 'localhost';
const server = http.createServer(requestHandler);
server.listen(PORT, ip, () => {
console.log("Listening on http://" + ip + ":" + PORT);
});
//request-handler.js
const requestHandler = (req, res) => {
const { method, url } = req;
// 내용
}
module.exports = requestHandler
요청에 대한 url는 messages 뿐이기 때문에 그외의 것들은 404 에러상태를 보내주면된다.
//request-handler.js
if(url === '/messages') {
// 요청에 대한 handler
} else {
// 404 statuscode
}
data
라는 객체를 선언하고, tweet에 대한 데이터를 data
에 할당한다.
GET 요청이 왔을 때, data
의 내용을 JSON.stringify
해서 응답으로 보내준다.
POST 요청이 왔을 때, data
객체에 저장을 해준다.
const data = {
// tweet 데이터
}
if(method === 'GET') {
// ...
req.end(JSON.stringify(data));
}
if(method === 'POST') {
// ...
let body = []
req.on('data',(chunk) => body.push(chunk))
.on('end', () => {
body = Buffer.concat(body).toString();
// body를 data에 push
// ...
});
}