Javascript 主体html中的JSON请求
我正在尝试向API服务器发出https.0请求。我可以接收区块(JSON)并在控制台中打印它。如何将其直接写入html并在浏览器中显示Javascript 主体html中的JSON请求,javascript,json,node.js,firebase,firebase-realtime-database,Javascript,Json,Node.js,Firebase,Firebase Realtime Database,我正在尝试向API服务器发出https.0请求。我可以接收区块(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())
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);
您正在调用
requestListener
末尾的res.end()
。但它是在“定义”数据库读取处理程序之后调用的。因此,当您的db第一次触发“value”事件时,在HTTP响应上发送数据就太晚了
要修复它,您需要移动
res.end()
到数据库完成其数据推送的点。根据您使用的数据库/适配器,应该有一个close
或end
事件。如果不是,那么正确的位置就在.write()
之后,如果这保证是一个一次性调用“value”事件。您必须将JSON字符串化