1 minute read

11_Node.js 파일생성과 리다이렉션

  • App 제작 - 파일생성과 리다이렉션

    • 전송된 POST 데이터를 받아서 데이터 디렉토리 안에 파일 형태로 저장하기.
    • 그 결과 페이지로 리다이렉션하는 방법.

nodejs file write 구글링
nodejs 공식문서의 FileSystem - fs.writeFile(file, data[, options], callback)

//사용하기
const data = new Uint8Array(Buffer.from('Hello Node.js'));
fs.writeFile('message.txt', data, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
  • 콜백형식 (err) => { ~ } (함수를 표현하는 또다른 방법)

    fs.writeFile(`data/${title}`, description, 'utf8', function(err){
    })
    

err은(error) 에러가 났을 때 에러를 처리하는 방법을 제공한다

콜백이 실행된다면 파일의 저장이 끝났다는 의미.
파일 저장이 끝나면 success 응답을 한다.

/create 에서 form submit을 하면 ../nodejs1/data 디렉토리에 파일이 추가된다.

사용자를 생성한 파일을 확인 할 수 있게 화면 전환을 한다.
localhost:3000/?id=qqq 주소로 돌아갈 수 있게 화면 전환하기.

Redirection

  • 사용자가 어떤 페이지에서 처리를 하고 다른 페이지로 보내는 것.

nodejs redirection 구글링

//사용하기
response.writeHead(301, {
  Location: "http" + (request.socket.encrypted ? "s" : "") + "://" + 
    request.headers.host + newRoom
});
response.end();

301은 사용자를 다른 곳에 보내지만, 해당 주소로 영구히 바뀌었다는 뜻.
301이 아닌, 일시적으로 변환되게 해야한다.

HTTP 프로토콜 상태 코드
https://developer.mozilla.org/ko/docs/Web/HTTP/Status

  • 리다이렉션 메시지

    • 301 Moved Permanently : 요청한 리소스의 URI가 변경되었음을 의미한다.
    • 302 Found : 요청한 리소스의 URI가 일시적으로 변경되었음을 의미.

      fs.writeFile(`../nodejs1/data/${title}`, description, 'utf8', function(err){
                response.writeHead(302, {Location : `/?id=${title}`});
                response.end();
      })
      

사용자가 입력한 정보를 받아서 다이나믹하게 프로그래밍적으로 데이터 디렉토리에 파일을 생성하는 방법 완성.