Овај водич ће објаснити употребу читљивих стримова у Ноде.јс.
Како користити читљиве токове у Ноде.јс?
„ Читљиво ” токови се креирају позивањем „ цреатеРеадСтреам() ” и прочитани подаци се затим могу приказати на веб страници креирањем локалног сервера. Слушаоци догађаја уз помоћ „ на() ” методе такође могу бити приложене читљивим токовима да би се приказале поруке или извршиле одређене радње када читање датотеке почне или се заврши.
Погледајте пример за практичну демонстрацију.
Пример: Читање и приказивање садржаја преко сервера помоћу читљивих токова
У овом примеру, садржај дате датотеке се чита и затим приказује преко веб претраживача:
конст фсОбј = захтевају ( 'фс' ) ;
конст хттпОбј = захтевају ( 'хттп' ) ;
конст лоцалСервер = хттпОбј. цреатеСервер ( ( захтев, одговор ) => {
покушати {
// Циљана датотека за читање
конст ток података = фсОбј. цреатеРеадСтреам ( 'усецасе.ткт' ) ;
// Пренесите датотеку у одговор
ток података. цев ( одговор ) ;
} улов ( грешке ) {
конзола. грешка ( грешке ) ;
}
} ) ;
лоцалСервер. слушај ( 8080 , ( ) => {
конзола. Пријава ( „Сервер ради на локалном порту број: „8080“ )
} ) ;
Опис горњег кода је следећи:
- Прво, увезите потребне „ фс ' и ' хттп ” модуле и чувају њихове објекте у “ фсОбј ' и ' хттпОбј ” променљиве респективно.
- Затим, сервер је креиран позивањем „ цреатеСервер() ” метод и чување овог новокреираног сервера у „ лоцалСервер ' променљива.
- Затим користите „ покушати ” блок унутар функције повратног позива метода и позовите „ цреатеРеадСтреам() ” метод који користи „ фсОбј ' променљива.
- Проследите садржај циљане датотеке који треба да се прочита унутар заграда ове методе и сачувајте резултат у „ ток података ' променљива.
- Уметните „ ток података ” променљиву у „ .цев() ” за слање одговора.
- Користите „ улов ” блок за руковање евентуалним грешкама.
- Коначно, слушајте или подесите сервер преко броја порта “ 8080 ” и прикажите поруку о успеху уз помоћ функције повратног позива.
Извршите датотеку која садржи (цонтролФлов.јс) горњег кода преко доле наведене команде:
чвор цонтролФлов. јсГенерисани излаз показује да уз помоћ „ .цев() ' и ' Реадабле Стреам “, подаци о датотеци су прочитани и послати у одредишни ток да би се приказали на веб страници:
Пример 2: Локално читање статичких датотека помоћу РеадСтреам-а
У овом случају, изабрана је дата датотека преко тока и њен садржај се затим приказује преко прозора конзоле уз помоћ слушалаца догађаја:
конст фсОбј = захтевају ( 'фс' ) ;конст стреамОбј = фсОбј. цреатеРеадСтреам ( 'усецасе.ткт' ) ;
стреамОбј. на ( 'подаци' , ( садржаја ) => {
конзола. Пријава ( садржаја. тоСтринг ( ) ) ;
} ) ;
стреамОбј. на ( 'крај' , ( ) => {
конзола. Пријава ( ' \н Завршено читање датотеке.' ) ;
} ) ;
стреамОбј. цев ( процес. стдоут ) ;
Опис горњег кода је следећи:
- Прво, „ фс ” модул се увози и његов објекат се чува у „ фсОбј ' променљива.
- Затим, користећи „ фсОбј ” позива на „ цреатеРеадСтреам() ” и прослеђује путању циљане датотеке чији садржај треба да се преузме. Сачувајте резултат методе у новој променљивој “ стреамОбј ”.
- Приложите „ на() ” метод са „стреамОбј” који позива функцију повратног позива када „ података ” се преузима. Преузети подаци се прослеђују као параметар за функцију повратног позива која конвертује податке у стринг формат и приказује их преко конзоле.
- Опет приложите „ на() ” метод са “ стреамОбј ” и овог пута њена функција повратног позива приказује поруку о завршетку када се читање датотеке заврши.
Генерисани излаз након извршавања горњег кода показује да су прочитани подаци дуж завршне поруке приказани преко конзоле:
То је све о коришћењу читљивих стримова у Ноде.јс.
Закључак
За рад са читљивим стримовима у Ноде.јс, метод „ цреатеРеадСтреам() ” се позива преко „ фс ” објекат модула. Циљана путања датотеке на којој садржај треба да се упише се затим прослеђује као параметар методе. Може се користити са „ .цев() ” за обављање даљих задатака над преузетим подацима као што је писање садржаја у другу датотеку. Овај пост је илустровао процедуру рада са читљивим стримовима.