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라는 파일이 생기고, 해당 주소로 바로 이동되었다.
(어느 순간부터 파일 이름 출력이 사라졌네... 추가해 주었음...)