如何在Node.js中发送巨大的数据池作为响应?

时间:2018-11-29 05:31:17

标签: javascript node.js json

node.js 应用程序中,我从 MySQL 数据库中提取了一个巨大的数据池(200000行)。

src/

我认为最好的方法是按块和流而不是一次发送所有数据。我尝试使用JSONStream软件包执行此任务,但确实很困惑。有人可以通过这个软件包向我展示发送巨大数据池作为node.js中的响应的正确方法吗?

1 个答案:

答案 0 :(得分:2)

这是一个例子:

app.get('/data', (req, res) => {
  // Make sure to set the correct content type
  res.set('content-type', 'application/json');

  // Stream the results
  pool.query(query, binds)
      .stream()
      .pipe(JSONStream.stringify())
      .pipe(res);
});

诀窍是在查询上调用.stream()方法,以流式传输结果,然后将这些结果通过JSONStream进行管道传输,以将其字符串化为JSON流,随后将其通过管道传输至响应。

有关mysql的更多信息,请点击此处