오늘은 mini-node-server과제가 주어졌다. 영문자를 요청 시 대소문자로 변경하여 응답하는 과제다.
const http = require('http'); const PORT = 4999; const ip = 'localhost'; const server = http.createServer((request, response) => { //서버생성 if(request.method === 'OPTIONS') { //사전요청 preflight request response.writeHead(200, defaultCorsHeader); //응답 헤더 작성 메서드(상태코드, 헤더정보 객체) response.end(); //응답 종료 } if(request.method === 'POST'){ //포스트메서드 요청시 let body = []; //데이터 저장 빈배열 request.on('data', (chunk) => { //데이터를 받을 때 body.push(chunk); //배열에 추가 }).on('end', () => { //데이터 받아오기 완료 시 body = Buffer.concat(body).toString(); //청크를 하나의 문자열로 합치고 변환 response.writeHead(201, defaultCorsHeader); //성공 if(request.url === '/lower'){ response.end(body.toLowerCase()); //응답종료(소문자로 변환) }else if(request.url === '/upper'){ response.end(body.toUpperCase()); //응답종료(대문자로 변환) }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 };
공식문서와 1시간정도 싸운결과 큰 어려움없이(?) 풀렸는데....
이런 오류가 뜨는것이다....json형식..?응답형식이 잘못됐나 싶어서
이렇게 바꿔보고....APP.js로 가서 건드려보고...1시간반동안 오류해결만 찾아다녔다.
그렇게 알게된것....맨처음에 서버를 실행하고 변경사항이 있을때마다 저장 > 종료 > 재실행을 해야했다. 이 불편함을 없애기 위해 npm install nodemon 을 설치했는데.......
설치하고 기존서버를 닫고 nodemon으로 재실행해야 하는거였다.....package.json의 "scripts"에 실행코드를 쓰거나 npx nodemon server/basic-server.js로 실행하면 된다....
정말 어이없는 짓을 1시간반동안 했다...나는 뭘한거지..나같은 바보가 없길 바라면서 안잊을려고 글 쓴다ㅠㅠ