В этом руководстве объясняется использование читаемых потоков в Node.js.
Как использовать читаемые потоки в Node.js?
« Удобочитаемый Потоки создаются путем вызова метода « создатьReadStream() » и считанные данные затем можно отобразить на веб-странице, создав локальный сервер. Слушатели событий с помощью « на() К читаемым потокам также можно прикреплять методы для отображения сообщений или выполнения определенных действий, когда чтение файла начинается или заканчивается.
Взгляните на пример для практической демонстрации.
Пример. Чтение и отображение контента через сервер с использованием читаемых потоков
В этом примере содержимое предоставленного файла считывается, а затем отображается в веб-браузере:
константа фсобж '=' требовать ( 'фс' ) ;
константа httpObj '=' требовать ( 'http' ) ;
константа локальныйсервер '=' httpОбъект. создатьсервер ( ( ответ на запрос ) => {
пытаться {
// Целевой файл для чтения
константа поток данных '=' фсОбдж. создатьReadStream ( 'usecase.txt' ) ;
// Передача файла в ответ
поток данных. трубка ( ответ ) ;
} ловить ( ошибки ) {
консоль. ошибка ( ошибки ) ;
}
} ) ;
локальныйсервер. слушать ( 8080 , ( ) => {
консоль. бревно ( 'Сервер работает на локальном порту с номером: '8080'' )
} ) ;
Описание приведенного выше кода выглядит следующим образом:
- Сначала импортируйте необходимые « фс ' и ' http ” модулей и хранить их объекты в “ фсобж ' и ' httpObj переменные соответственно.
- Далее сервер был создан путем вызова команды « создатьСервер() » и сохранить этот вновь созданный сервер в « локальныйсервер ' переменная.
- Затем используйте « пытаться ” внутри функции обратного вызова метода и вызвать функцию “ создатьReadStream() метод с использованием метода « фсобж ' переменная.
- Передайте содержимое целевого файла, которое необходимо прочитать, внутри скобок этого метода и сохраните результат в файле « поток данных ' переменная.
- Вставьте « поток данных ” в переменную “ .трубка() ” метод для отправки ответа.
- Используйте функцию « ловить ” для обработки любых возникших ошибок.
- Наконец, прослушайте или настройте сервер по номеру порта « 8080 » и отобразить сообщение об успехе с помощью функции обратного вызова.
Выполните файл, содержащий приведенный выше код (controlFlow.js), с помощью приведенной ниже команды:
узел управления потоком. jsСгенерированный вывод показывает, что с помощью « .трубка() ' и ' Читабельный поток », данные файла были прочитаны и отправлены в целевой поток для отображения на веб-странице:
Пример 2. Локальное чтение статических файлов с помощью ReadStream
В этом случае в потоке выбирается предоставленный файл, а затем его содержимое отображается в окне консоли с помощью прослушивателей событий:
константа фсобж '=' требовать ( 'фс' ) ;константа потокObj '=' фсОбдж. создатьReadStream ( 'usecase.txt' ) ;
потокОбъект. на ( 'данные' , ( содержание ) => {
консоль. бревно ( содержание. нанизывать ( ) ) ;
} ) ;
потокОбъект. на ( 'конец' , ( ) => {
консоль. бревно ( ' \п Закончил чтение файла. ) ;
} ) ;
потокОбъект. трубка ( процесс. стандартный вывод ) ;
Описание приведенного выше кода выглядит следующим образом:
- Во-первых, « фс Модуль импортируется, а его объект сохраняется в папке « фсобж ' переменная.
- Далее, используя « фсобж » вызывает « создатьReadStream() ” и передает путь к целевому файлу, содержимое которого необходимо получить. Сохраните результат метода в новой переменной « потокObj ».
- Прикрепите « на() ” с “streamObj”, который вызывает функцию обратного вызова, когда “ данные » извлекается. Полученные данные передаются в качестве параметра функции обратного вызова, которая преобразует данные в формат String и отображает их на консоли.
- Снова прикрепите « на() ” метод с “ потокObj » и на этот раз его функция обратного вызова отображает завершающее сообщение, когда чтение файла завершается.
Сгенерированный вывод после выполнения приведенного выше кода показывает, что прочитанные данные в конечном сообщении были отображены на консоли:
Вот и все, что касается использования читаемых потоков в Node.js.
Заключение
Для работы с читаемыми потоками в Node.js используется метод « создатьReadStream() ” вызывается через “ фс » объект модуля. Целевой путь к файлу, в который необходимо записать содержимое, затем передается в качестве параметра метода. Его можно использовать с помощью функции « .трубка() ” для выполнения дальнейших задач над полученными данными, таких как запись содержимого в другой файл. В этом посте проиллюстрирована процедура работы с читаемыми потоками.