카테고리 없음

미니 노드서버

해말그미 2023. 4. 6. 22:24
const http = require('http');

const PORT = 4999;

const ip = 'localhost';

const server = http.createServer((request, response) => {
  const {method, url, headers} = request

  let body = [];
  request.on('data', (chunk) => {
    body.push(chunk);
  }).on('end', () => {
    body = Buffer.concat(body).toString();

  if(request.method === 'POST' && request.url === '/upper'){
    response.writeHead(200, defaultCorsHeader)
    response.end(body.toUpperCase())
  }else if(request.method === 'POST' && request.url === '/lower'){
    response.writeHead(200, defaultCorsHeader)
    response.end(body.toLowerCase())
  }else if(request.method === 'OPTIONS'){
    response.writeHead(200, defaultCorsHeader)
    response.end()
  }else{
    response.writeHead(404, defaultCorsHeader)
    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 // preflight request는 10초까지 허용된다 
};