//http 모듈 호출
const http = require('http');
//포트 번호 : 4999 & ip 주소: localhost 로 설정
const PORT = 4999;
const ip = 'localhost';
const server = http.createServer((request, response) => {
//options 부분 따로 처리! 요청 받은 메소드가 options 일경우
if (request.method === 'OPTIONS') {
//defaultCorsHeader에 200 호출
response.writeHead(200, defaultCorsHeader);
response.end('hello mini-server sprints');
console.log(request.method)
}
//만약에 요청 받은 메소드가 post이고 url이 upper일 경우
if (request.method === 'POST' && request.url === '/upper') {
//전달 받은 body의 값을 변경
let body = [];
request
.on('data', (chunk) => {
body.push(chunk);
})
.on('end', () => {
body = Buffer.concat(body).toString();
response.writeHead(200, defaultCorsHeader);
response.end(body.toUpperCase());
});
}
//만약에 요cjd 받은 메소드가 post이고 url이 /lower일 경우
else if (request.method === 'POST' && request.url === '/lower') {
let body = [];
request
.on('data', (chunk) => {
body.push(chunk);
})
.on('end', () => {
body = Buffer.concat(body).toString();
response.writeHead(200, defaultCorsHeader);
response.end(body.toLowerCase());
});
}
//에러 처리
else {
response.statusCode = 404;
response.end();
}
});
server.listen(PORT, ip, () => {
console.log(`http server listen on ${ip}:${PORT}`);
});
const defaultCorsHeader = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Accept',
'Access-Control-Max-Age': 10
};