-
[Developer] [node.js] 7. post방식으로 전송한 데이터를 node.js로 가져오기Data miner/Developer 2020. 1. 8. 16:59728x90
출처; 생활코딩의 Node.js의 강의 내용 / 이고잉 강사님 감사드립니다 (꾸벅)
node.js는 컨텐츠의 읽기, 쓰기, 수정, 삭제를 웹을 통해서 가능하게 해준다고 하였다. 이 포스팅에서는 사용자가 특정 컨텐츠를 추가해주는 부분을 node.js가 어떻게 처리하는지에 대해서 다루고자 한다. 자, 모든 코딩의 시작은 어떤 것을 잘 검색하는데에 있다. 먼저, "nodejs post data"를 검색한다. https://stackoverflow.com/questions/4295782/how-to-process-post-data-in-node-js 사이트에서 아래의 코드를 활용한다.
2020/01/08 - [Data miner] - [Developer] [node.js] 6.
먼저, 이전 포스팅에서 우리는 사용자가 작성한 정보를 ./create_process로 전송한다는 것을 배웠다. node.js는 사용자가 웹페이지에 접속할 때마다 http.createServer의 call back함수를 호출하게 된다. 이 함수의 인자는 request, response인자가 있으며, request는 요청할 때 웹브라우저(클라이언트)가 보내주는 정보를 담고 있고, response는 응답할 때 웹브라우저(클라이언트)에게 전송할 정보를 담고 있다. request는 서버에게 보내는 정보를, response는 웹페이지에 보여주는 정보를 담고 있다고 생각하면 된다. 아래의 코드는 request부분이 관련된다.
1) else if(pathname == '/create_process'), 먼저 사용자가 클릭한 create 경로가 /create_process인 경우
2) request on의 방법을 사용한다. 이때, data라는 인자를 통해 웹페이지로부터 수신한 정보를 전달하게 된다. 어떤 특정한 양, 총 데이터 중에서 일부의 데이터에 대해서 callback함수를 호출하도록 해야 한다. request on 데이터는 post 방식으로 데이터를 전송할 때, 한 번에 사용하면 로드양이 많을 수 있기 때문이다.
else if(pathname == '/create_process'){
var body = '';
request.on('data', function(data){
body = body + data;
});2-1) 정보양이 너무 많을 경우, 접속을 끊어버리는 부분이다.
if (body.length > 1e6)
request.connection.destory()3) 정보를 모두 다 받게 되면, 다음의 end function 콜백함수로 호출하도록 한다. qs의 parse함수를 이용해서 정보를 post를 객체화할 수 있다. post가 저장한 data를 받고, dictionary형태로 저장된 post형태에서 필요한 부분을 각각 title과 description에 저장한다.
request.on('end', function(){
var post = qs.parse(body);
var title = post.title;
var description = post.description;
});
response.writeHead(404);
response.end('success');
}'Data miner > Developer' 카테고리의 다른 글
[Developer] [node.js] 9. 글 수정하기 기능 만들기 3) 수정된 내용 저장하기 (0) 2020.01.28 [Developer] [node.js] 8. 글 수정하기 기능 만들기 1) 링크생성 2) 전송 (0) 2020.01.20 [Developer] [node.js] 6. <form ...> </form> (0) 2020.01.08 [Developer] [node.js] 5. package manager pm2 (0) 2020.01.07 [Developer] [node.js] 4. (0) 2020.01.06