Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор.
Работата с файлове е една от най-честите задачи, които една програма изпълнява, така че спестете време и усилия с помощната библиотека на Node.
Една от вградените функции на Node.js е манипулирането на файловата система на операционната система с помощта на модула fs. Този модул Node.js съдържа много полезни функции за работа с файлове и директории.
Файловете просто се наричат постоянни обекти или части от данни, които обикновено се съхраняват на твърд носител, известен като диск или памет. Файловете могат да бъдат от различни типове, от текстови файлове до файлове с изображения, аудио файлове и много други.
И така, какво е файлова система и как можете лесно да взаимодействате с файловата система на операционната система в Node.js?
Какво е файлова система?
Файловата система определя как една операционна система може да идентифицира, организира, съхранява и осъществява достъп до файлове, заедно с други операции.
Файловата система на операционната система също върши работата по групиране на файлове в колекции, известни като директории или папки. Обикновените файлове и директории са най-често срещаните части на файлова система, с които често се взаимодейства сред много други.
Някои примери за файлови системи включват нова технологична файлова система (NTFS), UNIX файлова система (UFS) и йерархична файлова система (HFS).
Какво представлява модулът Node.js fs?
Node.js fs module е вградена библиотека, предоставена от Node.js за работа с файловата система на всяка операционна система, която поддържа Node. The fs модулът е лесно достъпен и е основната библиотека за файлови операции като четене от файлове или запис на данни във файлове в Node.js.
Много често се използва с път и операционна система модули за извършване на различни операции с файлове. За да използвате fs модул във вашите програми, можете да го импортирате във вашия изходен код, както е показано в кода по-долу.
// CommonJS
конст fs = изискват('fs')
// ES6
импортиране fs от 'fs'
Какво представлява модулът за път Node.js?
Можете да използвате Node.js път модул за манипулиране на файлови пътища. Той включва помощни програми за лесно взаимодействие с пътищата на файлове и директории. Използвайки fs и път модули в тандем за изпълнение на задача е стандартна практика. Това е така, защото мнозинството от fs функциите на модула зависят от пътищата към целевите файлове или директории, за да функционират.
Можете да импортирате път модул във вашия код със синтаксиса по-долу:
// CommonJS
конст път = изискват('път')
// ES6
импортиране път от "път"
Общи функции за достъп до файловата система в Node.js
Ето най-често използваните Node.js fs и път модулни функции и как да ги използвате за взаимодействие с файлове и директории.
Работа с пътища
-
path.resolve: Това е функцията за разрешаване на път от списък с инструкции за път, предадени като параметри. Например:
path.resolve('home', 'projects', 'web');
// се завръща/home/projects/web path.resolve('home/projects/web', '../mobile');
// се завръща/home/projects/mobile -
path.normalize: The нормализирам функцията връща правилния и нормализиран път от даден входен път. Например:
path.normalize('home/projects/web/../mobile/./code');
// връща home/projects/mobile/code -
path.join: Тази функция изгражда пътека от няколко сегмента. Например:
path.join('начало', 'проекти', '../', 'филми');
// връща се у дома/филми -
path.basename: The основно име функцията връща последния сегмент от пътя. Можете да го използвате по два начина:
path.basename('home/projects/web/index.js');
// връща index.jspath.basename('home/projects/web/index.js', '.js');
// премахва разширението и връща 'index' -
path.dirname: Тази функция връща пътя до последната директория на даден път. Пример:
path.dirname('home/projects/web/index.js');
// връща home/projects/web -
path.extname: С тази функция можете да получите разширението на файл от даден път.
path.extname('home/projects/web/index.js');
// връща '.js'
Отваряне и затваряне на файлове
-
fs.open: Това е функцията за отваряне или създаване на файл синхронно в Node.js. Синхронната форма на fs.open е fs.openSync. fs.open ac приема четири аргумента, които са пътят на файла, флагове, отворен режим и функция за обратно извикване. Знамена и отворенрежим имат стойност по подразбиране и можете да научите повече за тях от Node.js fs.open документация.
конст filePath = path.join (__dirname, '/videos/newVideo.mp4');
// __dirname връща пътя до текущата работна директория.
// filePath =/videos/newVideo.mp4 fs.open (filePath, (грешка, fileDescriptor) => {
// обработка на грешки
конзола.log (fileDescriptor); // отпечатва цяло число, представляващо файловия дескриптор
}) -
fs.close: Добра практика е винаги да затваряте всички отворени файлове, когато вече не са необходими. Node.js има fs.close функция за това:
fs.open (filePath, (грешка, fileDescriptor) => {
// обработка на грешки, като например „файл/директория не съществува“
конзола.log (fileDescriptor);// затворете файла
fs.close (fileDescriptor, (грешка) => {
// обработка на грешки
конзола.log('Файлът е затворен успешно');
});
})
Създаване и изтриване
-
fs.mkdir: Това работи точно като mkdir терминална команда, която създава нова директория. Той приема път, режим (по избор) и функция за обратно извикване като параметри. Можете да го използвате по следния начин:
конст dirPath = path.join (__dirname, 'newDirectory');
fs.mkdir (dirPath, (грешка) => {
// обработка на грешки
конзола.log('Нова директория е създадена успешно');
}); -
fs.unlink: Тази функция премахва или изтрива файла по пътя, предаден като аргумент. Разгледайте примера на код по-долу:
конст filePath = path.join (_dirname, 'oldFile.js');
fs.unlink (filePath, (грешка) => {
// обработка на грешки
конзола.log('Файлът е изтрит успешно');
}); -
fs.rmdir: Този метод изтрива директорията по даден път. Използването му е много подобно на метода за прекратяване на връзката:
конст dirPath = path.resolve('home', 'projects', 'web');
fs.rmdir (dirPath, (грешка) => {
// обработка на грешки
конзола.log('Директорията е изтрита успешно');
})
-
fs.exists: The съществува метод проверява дали файлът по даден път съществува. Изпълнението е както следва:
позволявам filePath = path.join (__dirname, 'index.html');
fs.exists (filePath, (съществува) => {
конзола.log (съществува) // истина или лъжа
}) -
fs.stat: Това е синхронна функция, която връща свойствата на файл. Връща an fs. статистика обект, който разкрива някои методи за достъп до свойствата на файла. Ето един пример:
fs.stat('index.js', (грешка, статистика) => {
конзола.log (статистика); // отпечатва свойства на файла от ниско ниво
stats.isFile(); // връща true
stats.isDirectory(); // връща false
})
Трябва да използвате път методи, когато работите с файлови пътища, тъй като те ви предпазват от неочаквано поведение на различни платформи. The Node.js fs и Node.js път документацията описва изчерпателен списък от методи.
Манипулиране на файловата система в Node.js
Необятността на fs модулът го прави много лесен за достъп и взаимодействие с файлове на всяка операционна система. Когато го използвате заедно с път модул, вие сте отворени за повече функционалност и можете да манипулирате файловата система както желаете.
Основно предимство на Node.js е неговата преносимост. Можете да разработите вашите приложения на всяка платформа и да ги внедрите навсякъде, без да се притеснявате за основни проблеми със съвместимостта.