2015-12-07 47 views
0

我想知道是否有可能在同一個方法中使用多個res.send/json。我有一個很大的問題,因爲我想開發一個Web-Worker函數來每分鐘調用一個put請求,但是在第二個請求中,我得到了「發送後無法設置頭文件」。我知道這是不可能的,但我想知道是否存在某種運行方式。多個res.send/json - 發送後無法設置標題

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) 
     ); 
     } 
    }; 

感謝您的支持,我等待您的回覆。問候!

回答

0

你不能多次回覆一個請求,這是沒有意義的。

如果你需要數據流,那麼你將需要使用長輪詢,的WebSockets,服務器發送的事件,等等

此外,假設Threads.create()做什麼,我覺得可以做,產卵的OS線程只是爲了做你現在正在做的是浪費資源。該代碼塊中沒有任何內容是CPU限制的。

相關問題