繁体   English   中英

多个res.send / json-发送标头后无法设置标头

[英]multiple res.send/json - can't set headers after they are sent

我想知道是否有可能在同一方法中执行多个res.send / json。 我有一个很大的问题,因为我想将一个功能开发到Web-Worker中,以每分钟调用一次放置请求,但是在第二个请求中,我收到“发送后无法设置标题”。 我知道这是不可能的,但我想知道是否存在某种运行方式。

exports.update = function (req, res) {
      var feed = req.feed;
      feed.title = req.body.title;
      feed.apifeed = req.body.apifeed;
      feed.apikey = req.body.apikey;
      feed.active = req.body.active;

      if(feed.apifeed && feed.apikey && feed.active){

        var t = Threads.create();
        t.eval(setInterval(
          function(){

            async.parallel([
              function(callback, data){
                  var url = 'https://api.xively.com/v2/feeds/' + feed.apifeed + '.json?key=' + feed.apikey;
                  sensordata.getSensorData(url, function(data){
                    callback(null, data);
                  });
              }
            ], function(err, data){

                  feed.content[0].value = data[0][0].value;
                  feed.content[0].date = new Date();

                  feed.save(function (err) {
                      if (err) {
                        return res.status(400).send({
                          message: errorHandler.getErrorMessage(err)
                        });
                      } else {
                          res.json(feed);
                      }
                  });
            });

          }, 5000)
        );
      }
    };

感谢您的支持,我等待您的答复。 问候!

您不能多次响应一个请求,这毫无意义。

如果需要流数据,则将需要使用长轮询,WebSocket,服务器发送的事件等。

另外,假设Threads.create()做了我想做的事情,生成OS线程只是为了做您当前正在做的事情就是浪费资源。 该代码块中没有任何内容受CPU限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM