Я сейчас создаю приложение планирования в nodeJS.
У меня есть шаблон расписания, который я хотел бы генерировать динамически. Я знаю, что это возможно с потоком, более конкретно с каналами, хотя я не могу заставить его вводить код в середине потока.
Что я пробовал:
var through2 = require( "through2" );
input.pipe(through2(function (chunk, encoding, done){
var transformChunk = chunk.toString()
console.log(transformChunk);
if (transformChunk.includes("\\newDay{}{}")){
transformChunk += "newDay{12}{12}";
this.push(transformChunk);
}
done();
}))
это просто ничего не меняет.
Я также пытался создать свой собственный класс преобразования
const { Transform } = require('stream');
class injectText extends Transform {
constructor(string){
super();
this.replaceString = string;
}
_transform(chunk, encoding, callback) {
// var transformChunk = chunk.toString().replace("newDay{}{}", this.replaceString);
var transformChunk = chunk.toString()
if (transformChunk.includes("newDay{}{}")){
transformChunk += "newDay{12}{12}";
}
this.push(transformChunk)
console.log(transformChunk);
callback();
}
};
var changedStream = new injectText('newDay{11}{11}');
но это только добавляет к концу пара.
Замена строки работает только для одной строки.
Моя проблема в том, что мне нужно заменить эту одну строку несколькими новыми строками.