반응형
목표
사용자로부터 받은 data를 data 디렉토리 안에 파일 저장하고,
사용자가 입력한 데이터가 잘 전송되었는지 확인하는 다른 페이지로 가게 하기 (redirection)
Google에 nodejs file write를 검색해보자.
https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback
fs.writeFile(file, data[, options], callback)
callback 함수가 실행됨 (=파일의 저장이 끝났다). 따라서 response에 관한 코드들을 함수 속에 작성해야 한다.
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) {
if(err) throw err;
response.writeHead(200); //200: 파일을 성공적으로 전송하였음
response.end("success");
})
});
리로드하여 제출버튼을 누르니 파일이 생성되었다 !
만약 제출 후에, 생성된 파일을 보는 view page로 보내고 싶다면? http://localhost:3000/?id=hi 로 들어가면 된다. 그러면 전송이 됐는지 한 번에 확인할 수 있다.
사용자가 어떤 페이지에 튕겨 가게 하는 것을 리다이렉션(redirection) 이라고 한다.
Google에 nodejs redirection 검색을 해보자.
- 200: success
- 301: 들어왔던 주소를 아래 주소로 영원히 바꾸겠다.
- 302: 다른 페이지로 redirection 시킨다
우리는 페이지를 영원히 바꾸지 않고 일시적으로 지금만 페이지를 바꿀 것이므로 301은 적합하지 않고 302가 적합하므로 302를 사용하면 된다.
fs.writeFile(`data/${title}`, description, 'utf8',
function(err) {
response.writeHead(302, {Location: `/?id=${title}`}); //200: 파일을 성공적으로 전송하였음
response.end();
});
제출하자마자 바로 페이지가 이동된다 !
반응형
'Back-End > Node.js' 카테고리의 다른 글
Node.js.35.App 제작-글수정-수정할 정보 전송 (0) | 2020.09.02 |
---|---|
Node.js.34.App 제작-글수정-수정링크생성 (0) | 2020.09.02 |
Node.js.32.App 제작-POST 방식으로 전송된 데이터 받기 (0) | 2020.09.02 |
Node.js.31.App 제작-글생성 UI 만들기 (0) | 2020.09.02 |
Node.js.30.HTML-form (0) | 2020.09.02 |