Модуль fs предоставляет множество очень полезных функций для доступа к файловой системе и взаимодействия с ней.
Нет необходимости устанавливать его. Будучи частью ядра узла, его можно использовать, потребовав его:
const fs = require('fs')Как только вы это сделаете, у вас будет доступ ко всем его методам, которые включают:
fs.access(): проверьте, существует ли файл, и узел может получить к нему доступ с его разрешениямиfs.добавить файл(): добавить данные в файл. Если файл не существует, он создаетсяfs.chmod(): измените права доступа к файлу, указанному в переданном имени файла. Связанные:fs.lchmod(),fs.fchmod()fs.chown(): измените владельца и группу файла, указанного переданным именем файла. Связанные:fs.fchown(),fs.lchown()Связанные:fs.fchown(),fs.lchown() (): закрыть файловый дескрипторfs.CopyFile(): копирует файлfs.createReadStream(): создание потока файлов для чтенияfs.createReadStream(): создание потока файлов для чтения (): создайте файловый поток, доступный для записиfs.link(): создайте новую жесткую ссылку на файлfs.mkdir(): создать новую папкуfs.mkdtemp(): создать временный каталогfs.открыть(): установить режим файлаfs.readdir(): чтение содержимого каталогаfs.ReadFile(): чтение содержимого файла. Связанный:fs.читать()fs.readlink(): считывание значения символической ссылкиfs.realpath(): разрешить относительные указатели пути к файлам (.,..) к полному путиfs.переименовать(): переименовать файл или папкуfs.rmdir(): удалить папкуfs.stat(): возвращает статус файла, идентифицированного по переданному имени файла. Связанные:fs.fstat(),fs.lstat()fs.символическая ссылка(): создайте новую символическую ссылку на файлfs.усечь(): усечь до указанной длины файл, идентифицированный переданным именем файла. Связанный:fs.ftruncate()fs.unlink(): удалить файл или символическую ссылкуfs.unwatchfile(): прекратить наблюдение за изменениями в файлеfs.utimes(): измените метку времени файла, идентифицируемую переданным именем файла. Связанный:fs.futimes()fs.watchFile(): начните отслеживать изменения в файле. Связанный:
Одна странная вещь о модуль fs заключается в том, что все методы по умолчанию асинхронны, но они также могут работать синхронно, добавляя Синхронизация .
Например:
fs.переименовать()fs.Переименование синхронизации()fs.написать()fs.Синхронизация записи()
Это имеет огромное значение в потоке ваших приложений.
Узел 10 включает экспериментальную поддержку для API на основе обещаний
Например, давайте рассмотрим метод fs.rename() . Асинхронный API используется с обратным вызовом:
const fs = require('fs')
fs.rename('before.json', 'after.json', (err) => {
if (err) {
return console.error(err)
}
//done
})Асинхронный API можно использовать таким образом, с блоком try/catch для обработки ошибок:
const fs = require('fs')
try {
fs.renameSync('before.json', 'after.json')
//done
} catch (err) {
console.error(err)
}Ключевое отличие здесь заключается в том, что выполнение вашего скрипта будет блокироваться во втором примере до тех пор, пока файловая операция не завершится успешно.
Оригинал: “https://flaviocopes.com/node-module-fs/”