11_Node.js 파일생성과 리다이렉션
11_Node.js 파일생성과 리다이렉션
-
App 제작 - 파일생성과 리다이렉션
- 전송된 POST 데이터를 받아서 데이터 디렉토리 안에 파일 형태로 저장하기.
- 그 결과 페이지로 리다이렉션하는 방법.
- 전송된 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(); })
사용자가 입력한 정보를 받아서 다이나믹하게 프로그래밍적으로 데이터 디렉토리에 파일을 생성하는 방법 완성.