-
Node로 JSON 주고받기 - CodeHan의 코딩공부BackEnd/개념정리 2022. 9. 11. 13:09반응형
이번엔 Node로 .json파일을 주고 받아보자. 이것 역시 크게 어렵지 않다.
request와 response만 이해했다면 바로 할 수 있다.
const fs = require('fs');const http = require('http');
const server = http.createServer((req,res) => {
const url = req.url;const method = req.method;if(url === '/courses') {if(method === 'GET') {res.writeHead(200, {'Content-Type' : 'Application/json'})res.end(JSON.stringify(course))} else if(method === 'POST') {const body = [];req.on('data', (chunk) =>{console.log(chunk);body.push(chunk);});
req.on('end', () => {const bodyStr = Buffer.concat(body).toString() //chunk로 받아왔기 때문에 buffer의 concat으로 하나로 합치고 tosting으로 str로 전환한다.const course = JSON.parse(bodyStr);courses.push(course);res.writeHead(201);res.end();})}}})코드를 찬찬히 살펴보자
서버를 생성하고 요청을 보내는 내용은 넘어간다.
달라진 점은 method를 받아오는 것.
url을 전송받고 전달받은 method에 따라 다른 응답을 보내주는 것이다.
writeHead에 STATUS CODE와 Content Type을 입력해주고 여기에 json형식을 집어넣는다.
응답과 동시에 JSON을 Stringfy하여 서버에서 가지고 있는 course에 대한 내용을 json형식으로 전달해준다.
만약 POST요청을 받아 client가 sever에 어떤 data를 저장하고자 한다면
그 data는 chunck형식으로 전달되며 전달받은 chunck를 빈배열(body)에 차례로 넣어준다.
그리고 전송이 완료되면 end event를 전달받을 때 전달받은 body배열을 buffer를 통해 string으로 전환한다.
전환한 문자열을 JSON.parse로 object형식으로 다시 전환하고, 이를 server원본 data에 push한다.
이 작업이 마무리되면 응답으로 201 STATUS CODE를 전송해주고 end로 응답을 마무리한다.
반응형'BackEnd > 개념정리' 카테고리의 다른 글
서버에서 에러 처리하기 - CodeHan의 코딩공부 (0) 2022.09.12 Express.js로 서버 만들기 - CodeHan의 코딩공부 (0) 2022.09.12 Node로 서버 시작하기 - CodeHan의 코딩공부 (0) 2022.09.11 Database (0) 2022.06.29 Socket이란? (0) 2022.06.27