2017-02-20 45 views
0

我正在嘗試向API服務器發出https.request。我可以接收該塊(JSON)並將其打印在控制檯中。我如何直接將它寫入html並在瀏覽器中顯示?正文中的JSON請求html

var requestListener = function (req, res) { 

    var db = admin.database(); 
    var ref = db.ref("Clubs"); 
    ref.on("value", function(snapshot) { 

    console.log(snapshot.val());  //print on console 

     res.write(snapshot.val()); // in body html, error  throw er;        
     // Unhandled 'error' event ^Error: write after end 

    }, function (errorObject) {   
     console.log("The read failed: " + errorObject.code); 

    }); 

// CRUD 

    ref.child("club1").set({ 
     clubId: 1, 
     clubName: "club1", 
     telephone: "6548798", 
     address: "Lviv", 
     party: "qwe,asd,zxc" 
    }); 

    ref.child("club2").set({ 
     clubId: 2, 
     clubName: "club2", 
     telephone: "234234", 
     address: "Kiev", 
     party: "qwe,zxc" 
    });  
    res.end(); 
}; 

var server = http.createServer(requestListener); 
server.listen(8080); 
+0

您必須對JSON進行串聯 –

回答

0

您在requestListener結束通話res.end()。但是它在'定義'數據庫讀取處理程序之後被調用。所以當你的db第一次觸發'value'事件時,發送HTTP響應數據爲時已晚。

要修復它,您需要將res.end();移動到數據庫完成推送其數據的位置。根據您使用的數據庫/適配器,應該有一個closeend事件。如果不是,那麼如果確保這是一次性的唯一呼叫'值'事件,那麼正確的地方就在.write()之後。