-
오늘의 궁금증 타파(node server/JSON)hustle 2020. 11. 26. 23:38
중구난방으로 정리하기첫번째
mini node server를 다시 보는데 진짜 솔직히... 다 뭔가 싶었다.
스프린트 진행할 당시에는 http 트랜잭션 해부 문서를 보고 거의 복붙을 했다.
다시 보니 얘네가 데이터를 어케 다루는지 1도 모르겠었다.
.on
얘는 아직 긴가민가 하지만 ㅋ.ㅋ
nodejs.org/api/events.html#events_emitter_on_eventname_listener
Events | Node.js v15.3.0 Documentation
Events# Source Code: lib/events.js Much of the Node.js core API is built around an idiomatic asynchronous event-driven architecture in which certain kinds of objects (called "emitters") emit named events that cause Function objects ("listeners") to be call
nodejs.org
이걸봤다 파파고의 도움을 빌려도 힘들었다.
가장 이해가 안되었던것은 괄호안에 들어있는 'data', 'end'였는데 읽어보고 동기분의 말씀을 들으니 그냥 암것도 아닌 거였다..
내가 이름을 지어주는대로 그이름을 갖고있는 것 ..
.then안의 param이런식으로 쓰이나 싶었는데 그것도 아닌거라 존재 이유가 좀 의아하긴하다.
chunk
얘는 맨첨에 한조각한조각인줄 알았다. 설명 해주실때 졸았나? 했는데 다행히 동기분도 같게 생각하셨다고 한다 ^ㅁ^
근데 조각이라고 치면 data = data+chunk를 할 때 뽀문을 돌려야하는데 그것이 아닌거라.. 고민이 되었다.
노드사용할 때 콘솔에 찍어보는 행위가 아직 어색해서 혼자 공부할 때는 많이 안쳐보는데 동기분과 줌을 켜고 함해밧다
console.log(chunk)를 하면 <Buffer>모시기가 나왔다
console.log(''+chunk)를 하면 우리가 사용할 데이터가 나왔다.
console.log(true+chunk)를하면 true우리가사용할데이터 가 나왔다.
이걸로 chunk는 우리가 사용할 데이터가 나뉘어담겨있는 Buffer를 담고있는 것을 알았고
그것을 뭐랑 더하든 사용할 데이터로 변환된다는 것을 알았다.
첨엔 무엇을 더하든 string화가 되는 string의 특성을 사용한 것인가 했는데 Boolean, undefined, 숫자 무엇을 더하든 데이터로 변환되는 것을 보고 아님을 앎..
우선 저 문제를 푸는데에는 두가지 방법이 있었는데 첫번째는 배열사용하기, 두번째는 문자열사용하기 였다.
문자열사용
else if (req.url === '/upper') { let data = ''; req.on('data', chunk => { data = data + chunk; }); req.on('end', () => { data = data.toUpperCase(); res.writeHead(201, defaultCorsHeader); res.end(data); }); }
이거는 위에 말했듯이 무언가와 더했기 때문에 이미 string화 되어있기 때문에 그친구를 바로 Upper화 시키면 되었다.
배열사용
if(request.method === "POST"){ //포스트일때 let body = []; request.on('data', (chunk) => { body.push(chunk); }).on('end', () => { body = Buffer.concat(body).toString(); if(request.url === '/upper'){ response.end(body.toUpperCase()); }else if(request.url === '/lower'){ response.end(body.toLowerCase()); } }); }
이건 무언가와 더한게 아니고 push, concat을 한거라 toString이 필요한건데
사실 Buffer.concat이건 잘 이해안간다 깔깔
두번째
1. server에 데이터가 stringfy화 되어 저장되어 있더라도 가져올 때 무조건 stringfy처리를 해야한다 외우렴
2. 나는 POST가 서버에 데이터를 전송해서 저장하는걸로만 알고 있었는데 response.end에 왜 무언가가 들어가야하는지 아직 잘 모르겠다 ㅎㅎ
stringfy이거 하나가지고 동기분을 1시간을 괴롭혔다. 죄책감..
stringfy는 따옴표붙이기 parse는 떼기
'hustle' 카테고리의 다른 글
대국민사과문 (0) 2020.11.29 2020.11.27 공부일기를 빙자한 아무말 (0) 2020.11.27 오늘의 궁금증타파(promise) (0) 2020.11.25 11.25 (0) 2020.11.25 하이 (0) 2020.11.20