TIL 7주차 Node.js 모듈
📌fs 모듈
- 파일 처리와 관련된 작업을 하는 모듈로, FileSystem을 의미
- 동기/비동기로 나뉘는데, Sync라는 이름이 붙어있는 메소드가 동기방식을 사용
- 비동기 형식은 항상 마지막 인수가 수행 완료 시 호출할 콜백 함수로 작성되어야 한다.
📎fs 메소드
fs.readFile(filename, [options], callback)
: 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); //파일 읽기의 결과는 문자열이다. });
fs.readFileSync(filename, [options])
: filename의 파일을 [options]의 방식으로 읽은 후 문자열을 반환합니다.(동기적)
fs.writeFile(filename, data, [options], callback)
: filename의 파일에 [options]의 방식으로 data 내용을 쓴 후 callback 함수를 호출합니다.
(비동기적)
fs.writeFileSync(filename, data, [options])
: filename의 파일에 [options]의 방식으로 data 내용을 씁니다.
(동기적)
📌path 모듈
파일과 Directory 경로 작업을 위한 유틸리티로, 경로작업을 할 때 사용
const path = require('path');
타 블로그 path module 정리
내 블로그 path 정리
📎__dirname, __filename
--dirname
: file 명을 제외한 절대 경로
console.log(__dirname); // /Users/ano/temp
path
--filename
: file 명을 포함한 절대경로
console.log(__filename); // /Users/ano/temp/directory.js
📎path 모듈
path.resolve([…paths])
: 여러 인자를 넣으면 경로를 묶어 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([..paths])
- 여러 인자를 넣으면 하나의 경로를 합쳐 반환하다. 상대경로를 표시하는 .. 와 현 위치를 표시하는 . 도 반영한 결과를 리턴
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 모듈 기초
Author And Source
이 문제에 관하여(TIL 7주차 Node.js 모듈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ellie12/TIL-7주차-Node.js-모듈저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)