육일.반딧불이반 과제

d_shunny·2023년 4월 6일
0

4월 log

목록 보기
1/7
post-thumbnail
//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
};
profile
코딩장

0개의 댓글

관련 채용 정보