首页 > 解决方案 > 如何持续向同一个请求交付数据

问题描述

我对后端技术比较陌生,我对今天看到的示例感到惊讶。

这是一个引入新 API 的示例,但我对通过同一请求传递数据的方式感到惊讶。我可能怀疑使用了流我试图用res.writeexpress 的方法创建它,但它并没有真正做我想要的。在读取整个流之前,它不会发送响应。

https://fetch-abort-demo.glitch.me/

我如何在 Node.JS / Express 应用程序中实现这一点?

标签: node.jsexpressstreambackend

解决方案


事实证明我对流的看法是正确的。我之前无法正确阅读它,因为它需要一些客户端代码来读取流数据。阅读的源代码可以在我发布的示例链接中找到。

流看起来像这样。

const it = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

app.get('/stream', (req, res) => {
  let time = 100
  for (const i of it) {
    setTimeout(() => {
      res.write(i)
    }, time)
    time += 2000
  }
  setTimeout(() => {
    res.end()
  }, time + 2000)
})

推荐阅读