node.js - 流数据事件未注册

标签 node.js supertest superagent

我正在使用 superagent 从服务器接收通知流

require('superagent')
  .post('www.streaming.example.com')
  .type('application/json')
  .send({ foo: 'bar' })
  .on('data', function(chunk) {
    console.log('chunk:' + chunk); // nothing shows up
  })
  .on('readable', function() {
    console.log('new data in!');   // nothing shows up
  })
  .pipe(process.stdout);           // data is on the screen

由于某种原因,dataread 事件未注册,但我可以将数据通过管道传输到屏幕。如何即时处理数据?

最佳答案

查看 pipe 的来源方法,您可以访问原始 req 对象并在其上添加监听器:

require('superagent')
  .post('www.streaming.example.com')
  .type('application/json')
  .send({ foo: 'bar' })
  .end().req.on('response',function(res){
      res.on('data',function(chunk){
          console.log(chunk)
      })
      res.pipe(process.stdout)
  })

但这不会处理重定向(如果有)。

关于node.js - 流数据事件未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871473/

相关文章:

javascript - 无法在 Mocha 的 before 功能内获取已登录的代理

javascript - 如何让重定向等待服务器的响应?

node.js - Electron (原子壳)窗口在一段时间后自行关闭

node.js - 使用 mongoose 和 Q.spread 给出数组回调参数

node.js - supertest:测试重定向url

node.js - 使用 supertest 测试 Express NodeJS 端点

javascript - 如何知道 npm 包是否可以使用 ES6 导入语法导入?

javascript - 为什么我在进行突变时会收到 "Cannot return null for non-nullable field"错误?

node.js - Node 无法通过管道传输 pdf 响应

javascript - GatsbyJS 和 super 代理 : WebpackError: require is not a function