身体html中的JSON请求

时间:2017-02-20 19:22:55

标签: javascript json node.js firebase firebase-realtime-database

我正在尝试向API服务器发出https.request。我可以收到块(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);

1 个答案:

答案 0 :(得分:0)

您在res.end()结尾处呼叫requestListener。但它在“定义”数据库读取处理程序之后调用。因此,当您的数据库第一次触发'value'事件时,在HTTP响应上发送数据为时已晚。

要修复它,您需要将res.end();移动到数据库完成推送其数据的位置。应该有closeend事件,具体取决于您使用的db / adapter。如果没有,那么正确的位置将在.write()之后,如果这保证是一次性的'值'事件。