VUE3.0을 빠르게 시작하는 방법: 학습
경로 모듈은 경로와 파일을 처리하는 데 사용되며 다양한 방법을 제공합니다.
경로와 파일 이름을 연결하는 것입니다.
const basePath = '/사용자/이유' const filename = 'abc.txt'
그런 다음 누군가 문자열 접합을 사용하여 접합합니다.
const filePath = basePath + '/' + 파일 이름 console.log(filePath);
이러한 결과에는 문제가 없지만 시스템마다 다를 수 있으므로 Windows 시스템에서는 , \ 또는 /를 경로 구분 기호로 사용할 수 있지만 Mac OS 및 Linux의 Unix 운영 체제에서는 /를 사용합니다. 경로 구분 기호입니다.
위의 문제를 해결하기 위해 path.resolve를 사용하여 경로를 연결할 수 있습니다.
const 경로 = require('경로') const basePath = '/사용자/이유' const 파일명 = 'abc.txt' const filePath = path.resolve(basePath, 파일 이름) console.log(파일 경로);
const path = require('path') const 파일 경로 = '/User/haha/abc.txt' console.log(path.dirname(filePath)); console.log(path.basename(filePath)); console.log(path.extname(filePath));
여러 경로를 접합하고 싶지만 운영 체제마다 서로 다른 구분 기호를 사용할 수 있는 경우 path.join 함수를 사용할 수 있습니다.
const 경로 = require('경로') const 기본 경로 = '/사용자/하하' const 파일명 = 'abc.txt' const filePath = path.join(기본 경로, 파일 이름) console.log(파일 경로);
파일과 폴더를 연결하려면 path.resolve를 사용할 수 있습니다.
const 기본 경로 = '사용자/하하' const 파일명 = 'abc.txt'
Path.resolve와 path.join을 사용하여 경로를 연결할 수도 있는데 차이점은 무엇입니까?
const 기본 경로 = '../사용자/하하' const 파일명 = './abc.txt' const 다른 이름 = './haha.js' const filePath1 = path.join(기본 경로, 파일 이름, 기타 이름) console.log(filePath1); const filePath2 = path.resolve(기본 경로, 파일 이름, 기타 이름) console.log(filePath2);
차이점을 확인할 수 있습니다.
nodejs 파일 시스템의 대부분의 API는 세 가지 작동 방법을 제공합니다.
동기 파일 작업: 코드가 차단되고
비동기 콜백 함수가 계속 실행되지 않습니다. 파일 작업: 코드가 차단되지 않으며 콜백 함수가 필요합니다. 결과가 얻어지면 콜백 함수가
비동기 Promise 작업 파일을 실행합니다. 코드는 차단되지 않습니다. fs.promises를 통해 메서드 작업을 호출하면 then 및 catch를 통해 처리될 수 있는 Promise가 반환됩니다.
방법 1 동기 작업: fs.statSync
const fs = require('fs') const 파일 경로 = './abc.txt' const 정보 = fs.statSync(파일 경로) console.log('나중에 실행해야 할 코드'); console.log(정보);
방법 2 비동기 작업
fs.stat(filepath, (err, info) => { if(err) { console.log(err); 반품 } console.log(정보); console.log(info.isFile()); // 파일인지 확인 console.log(info.isDirectory()); // 폴더인지 확인 }) console.log('나중에 실행해야 할 코드');
방법 3: Promise
fs.promises.stat(filepath).then(info => { console.log(정보); }).catch(err => { console.log(err); }) console.log('다음에 실행될 코드');
노드는 열려 있는 모든 파일에 숫자 파일 설명자를 할당합니다. 모든 파일 시스템 작업은 이러한 파일 설명자를 사용하여 각 특정 파일을 식별하고 추적합니다.
fs.open() 메서드는 새 파일 설명자 fd를 할당하는 데 사용됩니다. 할당되면 파일 설명자를 사용하여 파일에서 데이터를 읽거나, 파일에 데이터를 쓰거나, 파일에 대한 정보를 요청할 수 있습니다.
const fs = 요구('fs') fs.open('./abc.txt', (err, fd) => { if(err) { console.log(err); 반품 } // 파일 디스크립터를 통해 파일 정보를 얻습니다. fs.fstat(fd, (err, info) => { console.log(정보); }) })
fs.readFile(path[, options], callback): 파일 내용 읽기
fs.writeFile(path[, options], callback): 파일에 내용 쓰기
옵션 매개변수:
플래그: 쓰기 모드
인코딩: 문자 인코딩
파일 쓰기
fs.writeFile('./abc.txt', content, {flag: "a"}, err => { console.log(err); })
파일 읽기
fs.readFile('./abc.txt', (err, data) => { console.log(데이터); })
인코딩이 채워지지 않은 경우 결과 버퍼(바이너리)가 반환됩니다.
fs.readFile('./abc.txt', {인코딩: 'utf-8'}, (err, data) => { console.log(데이터); })
fs.mkdir() 또는 fs.mkdirSync를 사용하여 새 폴더를 만듭니다.
const fs = 요구('fs') //폴더 생성 const dirname = './haha' if(!fs.existsSync(dirname)) { fs.mkdir(dirname, (err) => { console.log(err); }) }
fs.readdir
fs.readdir(dirname, (err, files) => {
console.log(파일); })
이때 폴더의 모든 파일을 가져오면 아래 그림과 같이 재귀를 사용할 수 있습니다.
const fs = 요구('fs') const 경로 = require('경로') const dirname = './하하' 함수 getFiles(dirname) { fs.readdir(dirname, {withFileTypes: true}, (err, files) => { // console.log(파일); for(파일의 파일을 보자) { // 폴더인지 확인합니다. if(file.isDirectory()) { const 파일 경로 = path.resolve(dirname, file.name) getFiles(파일 경로) } 또 다른 { console.log(파일.이름); } } }) } getFiles(dirname)
fs.rename을 사용하여 폴더 이름을 바꿀 수 있습니다.
fs.rename('./haha', './xixi', err => { console.log(err); })