Я читаю длинный текст csv и передаю клиенту. Мне нужно убедиться, что каждый поток, передаваемый клиенту, имеет связанную с ним метку разрыва строки. Проблема в том, что при потоковой передаче данных разрывы строк удаляются. Есть ли способ, которым я могу гарантировать, что разрывы строк не удалены или заменены некоторыми символами, которые я могу распознать как разрывы строк на стороне клиента «во время» потоковой передачи?
Кроме того, нет гарантии, что каждый буфер в потоке всегда будет заканчиваться точкой разрыва строки, например, если у меня есть данные ниже
10,20,30
40,50,60
Следующий буфер может начинаться с 50 вместо 40. Как узнать, что каждый буфер должен быть объединен с разрывом строки или без него?
серверная часть
app.get('/test/api', (req, res) => {
let stream = fs.createReadStream('./resources/onescsv.csv');
stream = byline.createStream(stream);
stream.on('data', (data)=>{
// console.log(data.toString());
res.write(data + '||||')
});
// stream.pipe(res);
stream.on('end', () => res.end());
});
сторона клиента
let count = 0;
$(document).ready(()=>{
let lastOfPrevious;
let firstOfCurrent;
let xhr = new XMLHttpRequest();
xhr.open('GET', '/test/api', true);
xhr.onprogress = function (){
console.log('line count');
let incomingBuffer = xhr.responseText;
console.log(incomingbuffer)
};
xhr.send()
});
Спасибо.
xhr
получает порцию строк за раз 23.08.2017