【发布时间】:2017-08-23 01:43:58
【问题描述】:
我正在阅读长 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()
});
谢谢。
【问题讨论】:
标签: javascript node.js stream