사실 서버를 이해하면서 코드를보면서 대충 이해는 했지만
직접 작성을 하면서 익숙해지기는 어렵게 늦겨진다..
axios json등 개념부분은 이해가 되는데 직접 코드를 봐도 사실 이해가 잘 안됬따.
그래서 코드를 하나하나 차근차근 따봐야겠다는 생각이 들어서 이 포스트를 작성했다
그럼 자~ 시작!
const http = require('http');
const fs = require('fs').promises;
http.createServer(async (req,res)=>{
console.log(req.method)
})
.listen(8080,()=>{
console.log('8080포트 연결')
})
먼저 req.method라는게 get, post등등은 있지만 method라는 객체는 뭔지 모르겠었는데
링크에 주소를 치고 엔터를 치면 get요청이 들어온다.
요렇게 말이다.
if (req.method ==='GET'){
if (req.url === '/'){
const data = await fs.readFile('./front.html');
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
return res.end(data);
} else if (req.url === '/users'){
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
return res.end(users)
}
}
그냥 localhost에 들어가면 front.html을 보여주고
여기서 하나 실험해볼게 /users페이지다.
나는 users라는변수를 바보로 했고 이걸 res.end로 보내면 /users에 접속했을때 바보라는 글자가 뜬다.
근데 여기서 중요한건 json파일이다.
사실 제이슨에대해서 좀 개념이 이해안되서 싹다 정리해봐야겠다.
//객체를 json으로
console.log(JSON.stringify('바보'))
console.log(JSON.stringify(true))
객체를 json으로 바꿀때 JSON.stringify()인데 이걸 문자열로 만들어준다.
JSON이 문자열이니까 그냥 json파일로 만든다고 보면된다.
따라서 불리언 타입인 true도 저 코드로 치면 스트링으로 된다. 못믿겠으면 typeof로 감싸봐.
또한 어레이도 바꿔보자.
console.log(JSON.stringify(['하잉', '반가워']))
출력해보면
이렇게 쌍따옴표로 된다. 이것도 제이슨 형식으로 바뀐거다. parse로 꺼내보면 어레이로 쓸수가 있다.
제이슨으로 바꾸는건 객체도 넣을수 있는데 메서드(함수)는 바꿀수가 없다.
제이슨 replacer사용
let object = {
name : 'jacob',
age : 32,
job : null
}
이렇게 그냥 객체가 있다
여기서 이 객체의 원하는값만 json화 시킬수 있는데
json리플레이서를 사용하면 된다.
console.log('그냥객체 : ', object);
let objectJson = JSON.stringify(object)
console.log('객체를 오브젝트로 : ',objectJson)
let objectOnlyName = JSON.stringify(object, ['name'])
console.log('이름만 넣은 제이슨', objectOnlyName)
출력해보면
이렇게 이름만 넣은 제이슨을 가져올수 있다.
꼭 JSON.stringify(object, [원하는키값]) 양식으로 써줘야한다. 어레이에 넣어야 된다는 말씀.
JSON.parse(제이슨형식)
let objectAgain = JSON.parse(objectJson)
console.log(objectAgain)
console.log(objectAgain.name)
출력해보면