Работа с файловой системой Nodejs и модулем пути
⭐
Это первая часть из, наверное, очень длинной серии постов.
В этом посте я объясню, как использовать файловую систему node.js (fs) и модуль пути.
Ожидания
Этот пост предполагает базовые знания JavaScript и Node.js.
Что такое модуль Node.js fs?
Согласно официальной документации node.js
Модуль fs предоставляет множество очень полезных функций для доступа и взаимодействия с файловой системой.
Другими словами, модуль fs позволяет создавать, редактировать и удалять файлы и каталоги.
Примечание
JavaScript синхронен по умолчанию и является однопоточным. Это означает, что код не может создавать новые потоки и выполняться параллельно.
Хватит скучных вещей, давайте кодить.
Мы углубимся в различные методы, доступные в модуле fs, которые позволяют нам манипулировать файлами и каталогами.
Для начала давайте создадим новый проект node.js со следующими каталогами.
Наш код войдет в index.js
файл, как вы могли догадаться.
Как создать новый каталог
Чтобы создать новый каталог, нам нужно сначала потребовать fs
модуль и используйте mkdir
или mkdirSync
метод модуля fs. Добавьте это в свой index.js
const fs = require("fs");
// create a new directory 'assets' in the root directory
const folderPath = "./assets";
fs.mkdirSync(folderPath);
Я знаю, вам может быть интересно, почему я использовал mkdirSync
и не mkdir
метод.
Node.js предоставляет нам способ асинхронной работы с файловой системой, поэтому большинство fs
методы имеют как синхронную, так и асинхронную версию. В нашем случае я решил использовать синхронный метод.
Как создать файл в каталоге
Далее мы создадим текстовый файл внутри каталога ресурсов, используя writeFile
или writeFileSync
метод
let fileContent = "Now is the winter of our discontent
Made glorious summer by this sun of York;
And all the clouds that lour'd upon our house
In the deep bosom of the ocean buried";
// create a file named 'shakespear.txt'
let filePath = folderPath + '/shakespear.txt';
fs.writeFileSync(filepath, fileContent);
Вот и все.
Теперь, когда вы создали файлы и каталоги, теперь мы будем читать файлы в каталоге и регистрировать их в консоли.
Как прочитать все файлы в каталоге
Чтобы получить все файлы в каталоге активов, мы будем использовать readdir
или readdirSync
метод fs
модуль.
Обратите внимание, readdirSync
возвращает массив.
// Read and returns the name of all files in the directory
try{
files = fs.readdirSync(folderPath);
}catch(error){
console.log(error);
}
ОК, круто. Теперь мы можем создавать каталоги, создавать файлы и записывать в них, а также перечислять все файлы в каталоге.
Ниже приведен полный код в нашем index.js
.
const fs = require("fs");
// create a new directory 'assets' in the root directory
const folderPath = "./assets";
fs.mkdirSync(folderPath);
// create a file named 'shakespear.txt'
let fileContent = "Now is the winter of our discontent
Made glorious summer by this sun of York;
And all the clouds that lour'd upon our house
In the deep bosom of the ocean buried";
let filePath = folderPath + '/shakespear.txt';
fs.writeFileSync(filepath, fileContent);
// Read and returns the name of all files in the directory
try{
files = fs.readdirSync(folderPath);
}catch(error){
console.log(error);
}
Чтобы узнать больше о модуле fs, посетите официальную документацию по node.js.
В следующих постах я приведу больше примеров fs
метод модуля, такой как rename
где мы будем массово переименовывать все файлы в нашей папке ресурсов с помощью нескольких строк кода, и я объясню больше о модуле пути.
Если у вас есть предложения или исправления, не стесняйтесь обращаться к нам.
Source: codementor.io/community/new