ChatterBox Server_Sprint

Hanbin Lee·2021년 5월 22일
0

codestates

목록 보기
7/7

HTTP 서버란?

http 프로토콜을 통해 클라이언트와 통신해서 API를 제공하는 주체를 뜻한다.
HTTP 서버는 요청이 있으면 반드시 응답이 있어야한다.
요청의 대한 응답이 없다면 클라이언트에서는 에러가 발생하는데 어떤 에러가 발생하는지는 알 수가 없게 된다.

ChatterBox Server 스프린트

이번 스프린트에서는 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
		// ...
	});
}
profile
안녕하세요 백엔드 개발자 이한빈 입니다 :)

0개의 댓글