Node.js는 웹 애플리케이션, API, 명령줄 도구 등을 구축하는 데 널리 사용되는 인기 있는 백엔드 JavaScript 프로그래밍 언어입니다. Node.js에서는 때때로 사용자가 프로그램에서 읽고, 쓰고, 수정할 폴더를 선택하도록 해야 합니다. 이 기사에서는 Node.js를 사용하여 폴더를 선택하는 방법을 소개합니다.
1. 기본 Node.js를 사용하여 폴더 선택
Node.js는 파일 시스템을 작동하기 위한 fs 모듈을 제공합니다. fs 모듈에는 디렉토리의 모든 파일과 하위 디렉토리를 읽을 수 있는 readdir이라는 메소드가 있습니다. 다음은 기본 Node.js를 사용하여 폴더를 선택하는 코드 예제입니다.
const fs = require('fs'); const path = require('path'); let dir = process.argv[2] || '.'; fs.readdir(dir, (err, files) => { if (err) throw err; console.log('请选择一个文件夹:'); files.forEach(file => { let filePath = path.join(dir, file); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { console.log(`[${file}]`); } else { console.log(file); } }); }); process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { data = data.trim(); let filePath = path.join(dir, data); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { process.stdin.pause(); console.log(`已选择[${data}]文件夹!`); } else { console.log(`${data}不是一个有效的文件夹!`); } }); }); });
코드는 먼저 fs.readdir 메서드를 사용하여 사용자가 지정한 폴더를 읽은 다음 fs.stat 메서드를 사용하여 각 파일이 폴더입니다. 마지막으로 process.stdin을 사용하여 사용자 입력을 얻습니다. 사용자 입력이 폴더인 경우 사용자가 해당 폴더를 선택했음을 의미합니다.
2. 타사 모듈을 사용하여 폴더 선택
기본 Node.js를 사용하는 것 외에도 타사 모듈을 사용하여 폴더를 선택할 수도 있습니다. 다음은 폴더 선택을 위한 두 가지 일반적인 타사 모듈입니다.
inquirer는 웹 양식을 개발하는 것처럼 명령줄에서 대화형 선택 항목을 만들 수 있는 강력한 대화형 명령줄 사용자 인터페이스 라이브러리입니다. 다음은 Inquirer를 사용하여 폴더를 선택하는 코드 예제입니다.
const inquirer = require('inquirer'); const fs = require('fs'); const path = require('path'); let dirs = fs .readdirSync('.') .filter(file => { return fs.statSync(file).isDirectory(); }) .map(dir => { return { name: `[${dir}]`, value: dir }; }); inquirer .prompt([ { type: 'list', name: 'dir', message: '请选择一个文件夹:', choices: dirs, }, ]) .then(answer => { console.log(`已选择[${answer.dir}]文件夹!`); });
코드는 fs.readdirSync 메서드를 사용하여 현재 디렉터리의 모든 폴더를 읽고, filter 메서드를 사용하여 모든 폴더를 필터링합니다. 그러면 각 폴더는 map 메소드를 통해 객체로 캡슐화되어 질문자의 선택 목록에 폴더 이름이 표시될 수 있습니다. 마지막으로 inquirer.prompt 메소드를 사용하여 사용자가 폴더를 선택할 수 있도록 선택 목록을 팝업하고, Answer.dir을 사용하여 사용자가 선택한 폴더의 이름을 가져옵니다.
file-tree-select는 inquirer와 node-file-tree를 기반으로 구축된 파일 선택기 플러그인입니다. 명령줄에서 현재 디렉터리의 파일 트리를 표시할 수 있으며, 사용자는 키보드의 위쪽 및 아래쪽 화살표와 스페이스바를 통해 폴더를 선택할 수 있습니다. 다음은 file-tree-select를 사용하여 폴더를 선택하는 코드 예제입니다.
const fileTreeSelect = require('file-tree-select'); const path = require('path'); let dir = process.argv[2] || '.'; let absDir = path.resolve(dir); fileTreeSelect(absDir, { hideFiles: true }).then(result => { console.log(`已选择[${result}]文件夹!`); });
코드는 먼저 path.resolve 메서드를 사용하여 사용자가 입력한 폴더 이름을 절대 경로로 확인합니다. 그런 다음 fileTreeSelect 메소드를 사용하여 현재 디렉토리의 파일 트리를 표시하고 사용자는 키보드 조작을 사용하여 폴더를 선택할 수 있습니다. 마지막으로 .then 메소드를 사용하여 사용자가 선택한 폴더 경로를 가져옵니다.
3. 요약
폴더 선택은 Node.js에서 일반적인 작업입니다. 이 기사에서는 기본 Node.js, inquirer 및 file-tree-select를 사용하여 폴더를 선택하는 세 가지 방법을 소개합니다. 소규모 프로젝트의 경우 기본 Node.js를 사용하면 대규모 프로젝트의 요구 사항을 충족할 수 있으며 타사 모듈을 사용하면 개발 효율성과 코드 품질을 향상시킬 수 있습니다.
위 내용은 nodejs는 폴더 선택을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!