繁体   English   中英

如何使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM