![](/img/trans.png)
[英]How to send real time stream response from server to client using Node.js express
[英]How to send real time response from server to client using Node.js express
在发布请求服务器上几秒钟后生成数据,这些几乎是 1000 到 10000 个条目。 目前我正在将数据保存到 csv 文件中,并且工作正常。 我如何使用 json 数组将数据传递给客户端。
几秒钟后获取数据的姓名和年龄变量
app.post('/', (req, res) => {
// currently passing to results.csv. its working fine i want to send this real time (Name and age) data to client.
const stream = createWriteStream('./results.csv', { flags: 'a', encoding: 'utf8' })
// Append evaluation from response to file
stream.write(`${Name}, ${Age}\n`)
// example data: Patrick, 32
// End stream to avoid accumulation
stream.end()
})
res.send() only send first row but Name and age variable getting update after after each 10 seconds
app.listen(port, () => {
console.log("App is running on port " + port);
}); ```
要将数据解析为 json 数组,您必须在发送数据之前读取 stream。 例子:
let rows = []
fs.createReadStream('./results.csv')
.pipe(parse())
.on("error", (error) => console.error(error))
.on("data", (row) => rows.push(row))
.on("end", () => res.send(rows))
但如果要发送 csv 文件数据,请执行以下操作:
return res.sendFile("./results.csv", options, (err) => {
if(error) console.error(error)
console.log("File has been sent")
})
注意:第一个示例中使用的 parse() 方法来自fast-csv package。
此外,使用诸如fast-csv
之类的 package 可以在设置headers:true
时轻松将数据写入 csv 文件。 尝试读取数据时,必须将已设置的标头通知parse
方法,以便将这些值用于 json 键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.