본문 바로가기

카테고리 없음

[Node JS_007]Post

Get방식과 Post방식 모두 클라이언트가 서버에 요청하는 메소드인데,

지금까지 계속 Get방식으로 request를 보냈었다.

 

차이점을 정리한 뒤, Post도 사용해 보도록 하자.

 

1. Get방식

header에만(URL형태로) 데이터가 있고 body에는 내용을 넣을 것이 없으므로 데이터가 없는 상태로 전송된다.

그래서 많은 양의 데이터를 보내는 데 한계가 있다.

 

2. Post방식

데이터 전송을 기반으로 한 메소드이다. Get방식 처럼 URL에 데이터를 붙이지 않고 Body에 데이터를 넣어서 보낸다.

그래서 많은 양의 데이터를 전송하는 데 적합하다.

어떤 데이터 타입인지(단순 텍스트인지, 파일인지)를 명시해 주어야 한다.

 

get으로 먼저 array데이터를 보내고 화면에 forEach로 뿌린다.

friend names가 이렇게 list-up된다. 그리고 form에 name을 입력해서 버튼을 누르면 list에 추가되는 것을 만들 것이다.

그런데 이렇게 보내고 req.body를 보면 [undefined]로 나온다. 그 이유는 Express에서 기본적으로는 body를 제공하지 않기 때문이다. 그래서 명시적으로 request body를 얻고 그것을 javascript object로 만들어 달라고 해야한다.

이를 위해서는 body-parser가 필요하다.

body-parser는 사용자가 입력한 양식을 서버 사이드에서 추출하려는 경우 사용할 수 있는 기능이 정의되어 있다.

 

Post메소드를 좀 수정해 주어야 한다. 친구 이름을 입력하고 버튼을 누르면

리스트에 친구가 추가가 되어야 한다.

1. 입력을 하면 보내진 데이터의 newFriend에 해당하는 데이터를 변수에 담고

2. 이것을 friends array에 push한 후

3. 다시 [/friends]로 redirect함으로써 새로운 친구가 리스트에 추가된 것을 확인한다.

하지만 서버 접속을 끊으면 다시 array에 기본적으로 넣어둔 5개만 유지되고 새로 추가했던 친구들은 없어지는데

너무 당연한 것이지만, 이는 나중에 Database에서 해결할 수가 있다.