: filename의 파일을 [options]의 방식으로 읽은 후 callback으로 전달된 함수를 호출합니다.
: readFile은 파일내용을 String으로 가져오기 때문에, JSON.parse(data)를 해주어 객체 타입으로 변경해 줄 수 있다.
(비동기적)
let options = { encoding: 'utf8', // UTF-8이라는 인코딩 방식으로 연다. flag: 'r' // 읽기 위해 연다. } // /etc/passed 파일을 옵션을 사용하여 읽는다. fs.readFile('/etc/passwd', options, ...) ----------- fs.readFile('test.txt', 'utf8', (err, data) => { if (err) { throw err; // 에러를 던진다. } console.log(data); //파일 읽기의 결과는 문자열이다. });
: filename의 파일을 [options]의 방식으로 읽은 후 문자열을 반환합니다.(동기적)
: filename의 파일에 [options]의 방식으로 data 내용을 쓴 후 callback 함수를 호출합니다.
(비동기적)
: filename의 파일에 [options]의 방식으로 data 내용을 씁니다.
(동기적)
파일과 Directory 경로 작업을 위한 유틸리티로, 경로작업을 할 때 사용
const path = require('path');
타 블로그 path module 정리
내 블로그 path 정리
: file 명을 제외한 절대 경로
console.log(__dirname); // /Users/ano/temp
path
: file 명을 포함한 절대경로
console.log(__filename); // /Users/ano/temp/directory.js
: 여러 인자를 넣으면 경로를 묶어 root 경로를 고려한 새로운 경로를 반환한다. path.join()과 비슷한데 resolve는 다음과 같은 특징이 있다.
: 오른쪽 인자 부터 읽어가며 절대경로를 만든다.
(앞으로의 예제에서 /a 를 root 폴더라고 가정하지만 /a' 가 root 폴더가 아닌 경우 working directory를 기준으로 root 폴더까지의 경로를 붙여서 절대경로를 만들어 반환한다.)
: ...paths < string > : A sequence of paths or path segments
: Returns : < string >
// 인자 c 부터 읽어 들인다.
path.resolve('/a', 'b', 'c');
// Returns: /a/b/c
// /a 루트 폴더가 아닌 경우 root folder 까지의 경로를 붙여서 반환함
// 현재 해당 파일을 실행시키는 경로가 User/ano/temp/directory.js 라면
path.resolve('/a', 'b', 'c');
// Returns: User/ano/temp/a 를 반환
path.join('/foo', 'bar', 'baz/asdf', 'quux');
// Returns: '/foo/bar/baz/asdf/quux'
// 마지막 인자의 .. 가 현재 위치보다 한단계 위 상위 폴더를 의미하므로
// '/foo/bar/baz/asdf/quux' 보다 한 단계가 위 폴더의 경로가 반환됨
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'
// __dirname : User/ano/temp/direcotory
// 상대경로와 절대경로를 인자로 전달한 경우 이를 반영한 결과를 리턴함
// 두 단계 올라간 User/ano 에서 /workspace 폴더로 내려가 다시 /ano 폴더를 찾음
path.join(__dirname, '..', '..','workspace', '.', '/ano');
// Returns: User/ano/workspace/ano
참고)
fs 모듈 기초