🤔 TIL(Today I Learned)
Node Sever만들기
Seungjae Lee
2021. 9. 8. 22:53
const http = require('http');
const PORT = 5000;
const ip = 'localhost';
const server = http.createServer((request, response) => {
const { headers, method, url } = request;
console.log('headers:')
console.log(headers)
console.log(`method: ${method}, url: ${url}`);
//TODO: method가 options일 때
if (method === "OPTIONS") {
// CORS 설정을 돌려줘야 한다.
response.writeHead(204, defaultCorsHeader);
response.end('hello mini-server sprints');
}
//TODO: method가 POST 이고 url이 '/upper'일 때
if (request.method === 'POST' && request.url === '/upper') {
console.log(`http request method is ${request.method}, url is ${request.url}`);
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString().toUpperCase();
response.writeHead(200, defaultCorsHeader);
response.end(body);
});
}
//TODO: method가 POST 이고 url이 '/lower'일 때
else if (request.method === 'POST' && request.url === '/lower') {
console.log(`http request method is ${request.method}, url is ${request.url}`);
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString().toLowerCase();
response.writeHead(200, defaultCorsHeader);
response.end(body);
});
} else {
response.statusCode = 404;
response.end();
}
// response.writeHead(200, defaultCorsHeader);
// response.end('hello mini-server sprints');
// =====================================================
// console.log(
// `http request method is ${request.method}, url is ${request.url}`
// );
});
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
};