需要继续从服务器(nodejs)向客户端发送数据

时间:2018-02-17 14:58:54

标签: node.js twitter

我正在编写一个路由器,它从Twitter API发送推文并继续向我发送推文,我想在浏览器上显示这些推文(即,我需要不断向浏览器发送响应)。让我们说每个推文后都会收到回复。 我面临的问题就是我只能为每个请求发送一次响应。 我附上了代码。我可以为单个请求发送多个响应。

router.get('/:AddKey', function(req,res,next){
  const id = req.params.AddKey
  var stream = T.stream('statuses/filter', { track: id })
  console.log("asa");
  stream.on('tweet', function (tweet) {
  console.log(tweet);
  res.send(tweet);
  });

})

1 个答案:

答案 0 :(得分:0)

您只能发送一个响应,但您可以执行的操作是将要发送的数据放入数组中。

router.get('/:AddKey', function(req,res,next){
  const id = req.params.AddKey
  var stream1 = T.stream('statuses/filter', { track: id })
  var stream2 = T.stream('statuses/filter', { track: id })
  console.log("asa");

  var data = [];

  stream1.on('tweet', function (tweet) {
  data.push(tweet);

  stream2.on('tweet', function (tweet) {
  console.log(tweet);
  data.push(tweet);

  // send the array:
 res.send(data)

  });

});

实际实现可能略有不同,但概念只是将要发送的多个实体放入数组中并使用res.send发送数组。 res.send接受字符串,缓冲区和数组。