DevLog
Node Sever만들기 본문
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
};
'🤔 TIL(Today I Learned)' 카테고리의 다른 글
TIL(20210729) - HTTP/ 네트워크 (0) | 2021.07.29 |
---|---|
TIL(20210728) - 비동기(callback, promise, promiseAll, asyncAwait) + fs모듈, fetch() (0) | 2021.07.28 |
TIL(20210727) - 비동기(callback, promise, asyncAwait) (0) | 2021.07.27 |
TIL(20210723) - BFS & DFS (0) | 2021.07.23 |
TIL(20210722) - 자료구조(Stack, Queue, Tree, Graph) (0) | 2021.07.22 |
Comments