Как открыть папку в node js
Для работы с файлами в Node.js предназначен модуль fs. Рассмотрим, как с ним работать.
Чтение из файла
Допустим, в одной папке с файлом приложения app.js расположен текстовый файл hello.txt с простейшим текстом, например:
Для чтения файла в синхронном варианте применяется функция fs.readFileSync() :
В метод передается путь к файлу относительно файла приложения app.js, а в качестве второго параметра указывается кодировка для получения текстового содержимого файла. На выходе получаем считанный текст.
Для асинхронного чтения файла применяется функция fs.readFile :
Первый и второй параметр функции опять же соответственно путь к файлу и кодировка. А в качестве третьего параметра передается функция обратного вызова, которая выполняется после завершения чтения. Первый параметр этой функции хранит информацию об ошибке при наличии, а второй — собственно считанные данные.
Для чтения файла определим в файле app.js следующий код:
И здесь стоит обратить внимание, что несмотря на то, что функция fs.readFile() вызывается первой, но так как она асинхронная, она не блокирует поток выполнения, поэтому ее результат выводится в самом конце.
Запись файла
Для записи файла в синхронном варианте используется функция fs.writeFileSync() , которая в качестве параметра принимает путь к файлу и записываемые данные:
Также для записи файла можно использовать асинхронную функцию fs.writeFile() , которая принимает те же параметры:
В качестве вспомогательного параметра в функцию может передаваться функция обратного вызова, которая выполняется после завершения записи:
Файлы¶
Для работы с файлами в Node.js используется встроенный модуль fs , который выполняет все синхронные и асинхронные операции ввода/вывода применительно к файлам. Чтение и запись файла могут осуществляться одним из двумя способов:
- с использованием Buffer ;
- через создание соответствующего потока.
Чтение файлов и директорий¶
Для чтения файла в асинхронном режиме используется метод Node.js readFile() , который принимает три параметра:
- путь к файлу;
- кодировка;
- callback-функция, вызываемая после получения содержимого файла.
Callback-функции передается два аргумента: ошибка и полученные данные в строковом формате. Если операция прошла успешна, то в качестве ошибки передается null .
Если в readFile() не указать кодировку, то данные файла будут возвращены в формате Buffer .
Поскольку метод выполняется асинхронно, то не происходит блокировки главного процесса Node.js. Но в некоторых случаях может понадобиться синхронное чтение файла, для этого есть метод readFileSync() , но при этом выполнение главного процесса будет заблокировано до тех пор, пока полностью не будет загружено содержимое файла.
Node.js readFileSync() возвращает результат чтения файла и принимает два параметра:
- путь к файлу;
- кодировку.
Обработка и перехват ошибок при использовании readFileSync() осуществляется с помощью конструкции try catch() .
Чтобы инициировать ошибку, укажите неправильный путь к файлу.
Методы readFile() и readFileSync() для работы с файлами используют Buffer . Но есть и другой способ считать содержимое файла: создать поток с помощью Node.js fs.createReadStream() . Любой поток в Node.js является экземпляром класса EventEmitter , который позволяет обрабатывать возникающие в потоке события.
Параметры, принимаемые fs.createReadStream() :
- путь к файлу;
- объект со следующими настройками:
- encoding — кодировка (по умолчанию utf8 );
- mode — режим доступа (по умолчанию 0o666 );
- autoClose — если true , то при событиях error и finish поток закроется автоматически (по умолчанию true ).
Вместо объекта настроек можно передать строку, которая будет задавать кодировку.
Использование потока имеет ряд преимуществ перед Buffer :
- Меньшее использование памяти за счет чтения содержимого по частям;
- Для объемных файлов время между запросом и ответом существенно сокращается за счет того, что данные начинают поступать по частям, а не после полной загрузки;
- Возможность перенаправить данные в другой поток с помощью метода pipe() .
Для чтения директорий используются методы readdir() и readdirSync() , для асинхронного и синхронного режимов соответственно.
Node.js readdir() работает асинхронно и принимает три аргумента:
- путь к директории;
- кодировку;
- callback-функцию, которая принимает аргументами ошибку и массив файлов директории (при успешном выполнении операции ошибка передается как null ).
Node.js readdirSync() работает синхронно, возвращает массив найденных файлов и принимает два параметра:
- путь к директории;
- кодировку.
Создание и запись файлов и директорий¶
В Node.js файлы могут быть записаны также синхронно и асинхронно. Для асинхронной записи имеется метод writeFile() , принимающий следующие аргументы:
- путь к файлу;
- данные для записи;
- параметры записи:
- кодировка (по умолчанию utf8 );
- права доступа (по умолчанию 0o666 );
- callback-функция, которая вызывается по завершению операции и единственным аргументом принимает ошибку (в случае успешной записи передается null ).
Если нет необходимости указывать параметры записи, то третьим параметром Node.js writeFile() можно сразу передать callback-функцию.
Для синхронной записи Node.js файла используйте writeFileSync() . Метод принимает все те же аргументы, что и writeFile() за исключением callback-функции. В качестве значения возвращает undefined .
Как и в случае с readFileSync() обработка ошибок происходит с помощью try catch() .
Методы writeFile() и writeFileSync() перезаписывают уже имеющуюся в файле информацию новыми данными. Если вам нужно внести новые данные без удаления старых, используйте методы appendFIle() и appendFileAsync() , которые имеют идентичные параметры.
Для записи файла через потока ввода имеется метод fs.createWriteStream() , который возвращает поток ввода и принимает два параметра:
- путь к файлу;
- объект со следующими настройками:
- encoding — кодировка (по умолчанию utf8 );
- mode — режим доступа (по умолчанию 0o666 );
- autoClose — если true , то при событиях error и finish поток закроется автоматически (по умолчанию true ).
Чтобы создать директорию, используйте методы mkdir() и mkdirSync() .
Node.js mkdir() работает асинхронно и принимает в качестве параметров:
- путь к директории;
- объект со следующими настройками:
- recursive — если true , создает директорию и все ее родительские директории согласно указанному пути, если они еще не существуют (по умолчанию false , т. е. все родительские директории уже должны быть созданы, иначе будет сгенерирована ошибка);
- mode — режим доступа, параметр не поддерживается на ОС Windows (по умолчанию 0o777 );
- callback-функцию, которая единственным аргументом принимает ошибку, при успешном создании директории передается null .
Вторым параметром можно сразу передать callback-функцию.
Node.js mkdirSync() создает директорию синхронно и возвращает undefined . Обработка ошибок осуществляется через try catch() . Метод mkdirSync() принимает те же параметры, что и mkdir() , за исключением callback-функции.
Удаление файлов и директорий¶
Чтобы удалить в Node.js файлы используйте методы unlink() и unlinkSync() .
Метод unlink() асинхронный и принимает имя файла, который нужно удалить, и callback-функцию с ошибкой в качестве параметра ( null , если удаление прошло успешно).
Для синхронного удаления файла используйте unlinkSync() , которому единственным аргументом передается имя файла.
Для удаления директорий имеются методы rmdir() и rmdirSync() соответственно. Они полностью идентичны unlink() и unlinkSync() , только вместо имени файла принимают имя директории.
Создание, чтение и удаление папок в NodeJS
Если у Вас появились вопросы по материалам на нашем сайте, то пожалуйста, пришлите нам их на почтовый адрес support@mousedc.ru. Мы обязательно ответим.
Также Вы можете отправить нам свой отзыв на наши услуги, замечание или предложение. Мы ценим наших клиентов и внимательно прислушиваемся ко всем замечаниям!
- HTML
- Основы
- Теги
- Основы
- Свойства
- Основы
- База данных
- Объектно-ориентированное программирование
- Laravel
- Yii
- Основы
- WordPress
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Разработка
- Управление
- Управление
- Управление
- Управление
- Управление
- Управление
- Основы
- Работа с DOM
- AJAX
- jQuery
- Vue
- NodeJS
- React
- Основы React
- Стейты в React
- Компоненты React
- Apache
- Игровые серверы
- Linux
- MySQL
- Docker
- Nginx
- Устранение ошибок
- Почта
- SEO
- Личный кабинет
- Виртуальный хостинг
- Домены

- Генератор паролей
- Генератор .htpasswd
Коврик для мыши новым клиентам
Оплатите хостинг на год и получите удобный коврик
Помощь в переносе
с другого хостингаХотите переехать? Мы поможем перенести всё
Запишитесь на интенсивные курсы по созданию сайтов.
Приветствуем всех в нашем уютном дата центре! Мы предоставляем качественный и надёжный хостинг. У нас можно заказать домены и VPS, прочитать статьи по созданию сайтов и информационной безопасности. А из наших видео подкастов можно узнать о том, как продвигать и развивать iT-проекты.
Как получить доступ к файловой системе в Node.js?

В этой статье мы рассмотрели, как получить доступ к файловой системе в NodeJS и как выполнять некоторые полезные операции с файлами.
Предпосылка:
- Базовые знания ES6
- Базовые знания NodeJS
NodeJS — одна из самых популярных сред серверного программирования, работающая на движке JavaScript V8, который использует однопоточную неблокирующую модель ввода-вывода. Мы можем получить доступ к файловой системе в NodeJS, используя некоторые встроенные модули.
Файловая система: файл — это набор связанной информации, хранящейся во вторичном хранилище. Или файл — это набор объектов аналогичных типов, которые работают с файлом и управляют им, также называемые файловой системой.
Модуль файловой системы (модуль fs): одним из популярных встроенных модулей для работы с файловой системой в NodeJS является модуль файловой системы, который также сокращенно называют модулем «fs». Модуль fs очень эффективен для выполнения любых задач в NodeJS, связанных с файловыми системами.
Доступ к файловой системе в Node JS означает выполнение некоторых основных операций с файлами. Это также известно как операции CRUD.
CRUD Операции:
- C => Создать файлы
- R => Прочитать файлы
- U => Обновить файлы
- D => Удалить файл
Основные операции с файлами с использованием модуля «fs»
Шаг 1. Создайте файл с расширением «.js».
Шаг 2. Добавьте модуль «fs» в базу кода.
После установки модуля fs вы можете выполнять с файлами следующие операции:
Похожие публикации:
- Где учить css
- Для чего служит модель css flexbox
- Как сделать рамку для картинки в css
- Как сделать свечение css
Создание, чтение и удаление папок в NodeJS
Для создания, чтения и удаление папок в NodeJS используется модуль fs. В этой статье разобраны примеры, описывающие все эти функции.
Создание папки
Для создания папок в NodeJS используется метод mkdir. В его первый аргумент передаётся название папки (относительный или абсолютный путь к ней), которую нужно создать. Второй параметр опционален и не работает в Windows. В нём можно записать права доступа на эту папку (числа). А в третьем параметре находится callback функция, которая возвращает ошибку. Приведём пример:
let fs = require('fs'); fs.mkdir('new_folder', err => < if(err) throw err; // не удалось создать папку console.log('Папка успешно создана'); >);Если нужно создать последовательность вложенных папок (рекурсивное создание), то можно вторым параметром передать значение «recursive» равное «true»:
let fs = require('fs'); fs.mkdir('new_folder/sub_folder', < recursive: true >, err => < if(err) throw err; // не удалось создать папки console.log('Все папки успешно созданы'); >);Метод «mkdir» работает асинхронно. Для синхронного выполнения используйте метод «mkdirSync».
Удаление папки
С помощью метода «rmdir» можно удалить папку. Первым параметром в неё передаётся абсолютный или относительный путь к удаляемой папке. Вторым параметром — стрелочная функция для обработки ошибки:
let fs = require('fs'); fs.rmdir('new_folder/sub_folder', err => < if(err) throw err; // не удалось удалить папку console.log('Папка успешно удалена'); >);Метод «rmdir» работает асинхронно. Для синхронного выполнения используйте метод «rmdirSync».
Выполнение метода «rmdir» вызовет ошибку, если удаляемая папка не является пустой. Для удаления папки с вложенными файлами через «rmdir» необходимо скомбинировать чтение содержимого папки и удаление внутри рекурсивной функции. О рекурсивном обходе всех файлов читайте в статье «Рекурсивный обход файлов в NodeJS».
Чтение папки
Для чтения содержимого папки используется метод «readdir». Первым параметром в него передаётся абсолютный или относительный путь к папке, содержимое которой нужно прочитать. Вторым параметром — стрелочная функция для обработки ошибки и получения имён файлов:
let fs = require('fs'); fs.readdir('folder/sub_folder', (err, files) => < if(err) throw err; // не прочитать содержимое папки console.log('В папке находятся файлы:' + files); >);Читаем файл построчно

Если работать с nodejs вы начали совсем недавно и столкнулись с необходимостью читать текстовый файл построчно, то вот вам небольшой пример. Этот код позволяет открывать и читать файлы в Node.js, а также выполнять операции чтения и записи с использованием потоков.
const fs = require('fs'); const readline = require('readline'); const stream = fs.createReadStream('./file.csv', < encoding: 'utf-8' >); const rl = readline.createInterface(< input: stream, crlfDelay: Infinity, >); let lineCount = 0; rl.on('line', (line) => < lineCount++; if (lineCount % 2 !== 0) < console.log(line); >if (lineCount >= 10) < rl.close(); >>); rl.on('close', () => < console.log('Finished'); >);Первые две строки кода объявляют два модуля: fs и readline. Файловая система fs предоставляет функции для чтения и записи файлов, а readline используется для чтения данных в потоке, особенно для чтения больших файлов.
Затем создаются потоковый объект fs и интерфейс readline с использованием этого потока. Это позволяет читать файл и одновременно читать его построчно с помощью readline.
Далее определяется переменная lineCount, которая используется для подсчета строк в файле. В функции-обработчике события ‘line’ каждая строка файла проверяется на нечетность и выводится на консоль, если она нечетная. Также проверяется количество строк, и если это 10 строк или больше, чтение файла завершается и вызывается событие ‘close’.
В обработчике события ‘close’ выводится сообщение “Finished”, которое указывает на успешное завершение чтения файла.
В итоге, этот код представляет собой простой пример чтения файла в потоковом режиме и вывода нечетных строк на экран
Для использования модулей Node.js, таких как fs и readline , необходимо установить Node.js на компьютер. Node.js можно загрузить с официального сайта и установить на компьютер с помощью стандартной процедуры установки для вашей операционной системы.
После установки Node.js, вам необходимо создать новый проект, открыть терминал или командную строку и перейти в папку проекта. Далее вам нужно установить необходимые модули с помощью команды npm install . Эта команда установит все зависимости, указанные в файле package.json , включая модули fs и readline .
После установки модулей вы можете использовать их в своем коде, например, как в приведенном выше примере кода.
Начало работы с Node.js и терминалом?
3) Вот я создала папку helloworld.js с кодом console.log(«Hello World!»);
Но КАК . выполнить команду node helloworld.js ? Что сделать надо? В черной этой программе Windows PowerShell написать? Но оно мне ошибку выдает, говорит, что файл не найден.До этого у меня на черном фоне получилось получить версии программ
PS C:\Users\Аня> node -v
v9.3.0
PS C:\Users\Аня> npm -v
5.5.1
- Вопрос задан более трёх лет назад
- 8808 просмотров
