我正在编写一个路由器,它从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);
});
})
答案 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接受字符串,缓冲区和数组。