리셋 되지 말자

파일생성과 redirection 본문

NodeJS/생활코딩

파일생성과 redirection

kyeongjun-dev 2020. 9. 10. 17:21

POST로 받은 데이터를 파일로 생성

//Data가 조각 조각 들어오다가 더이상 데이터가 않오면 이게 실행되고, 콜백 함수가 실행됨
    request.on('end', function(){
      //정보를 qs 모듈로 post라는 객체로 객체화
      var post = qs.parse(body); // 지금까지 저장한 body 데이터를 querystring 모듈의 parse를 사용하면 post데이터의 post 정보가 들어있다.
      var title = post.title;
      var description = post.description;

      // data 디렉토리에 title이름으로 된 description 내용의 파일 생성
      fs.writeFile(`data/${title}`, description, 'utf8', function(err){
        // 에러 없이 파일 전송이 끝나면 Success 출력
        response.writeHead(200);
        response.end('Success');
      });
    });

  } else { // 없는 페이지를 요청하면 404 에러
  • 페이지 리로드 후, 파일이 생성되었는지 확인

hello라는 이름과 world라는 내용을 가진 파일 'hello'가 생성 되었다.

리다이랙션

위의 코드로는, 파일이 생성이 되면 'Success'문구만 출력되는데, localhost/?id=Nodejs로 이동 시, 생성된 파일을 확인할 수 있도록 하기 위해 리다이랙션을 사용함.

어떠한 처리 후, 사용자를 다른 페이지로 팅겨버리는 것을 리다이랙션한다고 한다.

    request.on('end', function(){
      //정보를 qs 모듈로 post라는 객체로 객체화
      var post = qs.parse(body); // 지금까지 저장한 body 데이터를 querystring 모듈의 parse를 사용하면 post데이터의 post 정보가 들어있다.
      var title = post.title;
      var description = post.description;

      // data 디렉토리에 title이름으로 된 description 내용의 파일 생성
      fs.writeFile(`data/${title}`, description, 'utf8', function(err){
        // writehead의 200은 성공했다는 뜻, 302는 페이지를 다른곳으로 redirection하라는 뜻
        response.write(302, {Location: `/?id=${title}`});
        response.end();
      });
    });

위처럼 writeHead의 인자로 302와 주소를 적는다.

 

  • 생성 테스트

bye, bye world라는 내용을 입력해본다.

bye라는 파일이 생기고, 해당 주소로 바로 이동되었다.

(어느 순간부터 파일 이름 출력이 사라졌네... 추가해 주었음...)

'NodeJS > 생활코딩' 카테고리의 다른 글

글수정-수정할 정보 전송  (0) 2020.09.10
글수정-수정링크 생성  (0) 2020.09.10
POSt 방식으로 전송된 데이터 받기  (0) 2020.09.10
글생성 UI 만들기  (0) 2020.09.10
HTML-form  (0) 2020.09.09
Comments