post방식으로 전송된 data를 data directory 안에 파일로 저장하기
fs.writeFile(file,data[,options],callback)
data/${title}
, data directory안에 title 컨트롤에 입력한 이름을 파일명으로 생성description
, 사용자가 description 컨트롤에 입력한 내용을 사용request.on('end', function(){
var post = qs.parse(body);
var title = post.title;
var description = post.description;
fs.writeFile(`data/${title}`, description, 'utf8', function(err){
//...
})
});
사용자가 자신이 직접 입력하여 추가한 파일을 확인할 수 있도록 입력한 내용을 보여주는 페이지로 곧장 이동되어야 한다.
그러기 위해서 /?id=...
와 같이 url의 QueryString가 id=파일명인 경로로 이동해야 한다. 이때 필요한 기능이 Redirection이다
response.writeHead(코드, {Location: 경로});
response.end();
302
: 페이지를 다른 페이지로 redirection 시키라는 의미{Location : 경로}
: redirection 시키고자 하는 경로를 지정한다.?id=${title}
이다. 생성한 파일의 내용을 확인할 수 있는 페이지로 이동하는 것은, 파일을 생성/쓰기한 직후에 실행되어야하는 일이므로 fs.writeFile
의 callback에 해당 코드를 구현해야 한다.
request.on('end', function(){
var post = qs.parse(body);
var title = post.title;
var description = post.description;
fs.writeFile(`data/${title}`, description, 'utf8', function(err){
//주목
response.writeHead(302, {Location: `/?id=${title}`});
response.end();
})
});
결과적으로 구현된 애플리케이션의 기능 :