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