본문 바로가기
  • 실행력이 모든걸 결정한다
Node.js/Node.js Basic

[Node.js] 파일생성/파일명변경, redirection

by 김코더 김주역 2020. 10. 14.
반응형

맨 밑에 첨부한 소스 코드에서, 해당하는 부분에 주석으로 표시해두었으므로 참고하면 된다.

 

1. 파일 생성 부분

웹사이트에서 writefile 링크를 누르면 number디렉토리에 FOUR 이라는 이름의 텍스트 파일이 생성된다.

텍스트 파일에는 'NUMBER FOUR' 이라는 내용이 있다.

 

<링크 클릭 전>

 

<링크 클릭 후>

2. 파일 편집 부분

웹사이트에서 rename을 누르면 파일명이 FOUR에서 FOUR4로 바뀌며 내부 내용은 "NUMBER FOUR edited by kimcoder" 으로 변경 된다.

 

 

3. redirection 부분

웹사이트에서 redirection 링크를 누르면 이 블로그의 홈으로 이동한다.

정확히 말하면, /writefile_test 페이지로 가서 https://kimcoder.tistory.com/ 으로 이동한 것이다.

특정 웹사이트에서 작업을 완료하자마자 다른 사이트로 자동으로 이동시키고 싶다면 redirection을 쓰면 된다.

 

 

var http = require('http');
var fs = require('fs');
var app = http.createServer(function(request,response){
    var _url = request.url;
    if(_url == '/'){
        var template=`
              <html>
                <ul>
                    <li><a href="/writefile_test">Writefile</a></li>
                    <li><a href="/redirection_test">Redirection</a></li>
                    <li><a href="/rename_test">Rename</a></li>
                </ul>
              </html>
          `;
          response.writeHead(200);
          response.end(template);
    }
    else if(_url=='/favicon.ico') console.log(' ');
    else if(_url=='/writefile_test'){ //파일 생성 부분
        fs.writeFile('../number/FOUR','NUMBER FOUR', 'utf8', function(err){});
        response.writeHead(302,{Location: '/'}); //완료 했다면 로컬 페이지로 이동
        response.end();
    }
    else if(_url=='/redirection_test'){ //redirection 부분
        response.writeHead(302,{Location: 'https://kimcoder.tistory.com/'});
        response.end();
    }
    else if(_url=='/rename_test'){ //파일 편집 부분
        var edit = '';
        fs.rename('../number/FOUR','../number/FOUR4',function(err){
            fs.readFile('../number/FOUR4', 'utf8', function(err,data){
                edit+=data; //기존에 있던 내용을 불러오고
                edit+=' edited by kimcoder'; //이 텍스트를 edit 변수에 붙인다.
                fs.writeFile('../number/FOUR4',edit,'utf8',function(err){
                    response.writeHead(302,{Location: '/'}); //로컬페이지로 이동
                    response.end();
                })
            });
        });
    }    
});
app.listen(3000);
반응형

댓글