建议和反馈

请填写你的反馈内容

问答 > Go/Python > 问答详情
求助中

从npm模块向浏览器发送JSON对象问题10LK

如何在回调“onRequest”中发送由npm模块“blockchain.info”返回的JSON对象“data”。我想在浏览器中写这个数据。

var http = require("http");var blockchain = require('blockchain.info');var blockexplorer = blockchain.blockexplorer;var txAdress = 'b4b69abc03e4a801201e57ca57891002e5e756e85dde77a17deff0b107185a78';blockexplorer.getTx(txAdress, function (err, data) {
   if (err) return console.error(err);
    console.log(data.size);  // works fine});var server = http.createServer(onRequest).listen(8888);function onRequest(request, response) {
   response.writeHead(200, {"Content-Type": "text/html"});
   response.write('<h3>List of transactions</h3>');
   //response.write('<p>' + data.size + '</p>');  // data undefined!
   response.end();}


2019-08-13
0
请先登陆或注册

分析师2019-08-13

data在范围内不存在onRequest了解变量范围

getTx也似乎是一个异步函数,你不能简单地从回调中“返回”它(如果你想尝试那样)。阅读此问题以了解相关信息。

一个简单的解决方案是在请求事件处理程序中进行调用:

function onRequest(request, response) {
    blockexplorer.getTx(txAdress, function (err, data) {
       if (err) return console.error(err);
       response.writeHead(200, {"Content-Type": "text/html"});
       response.write('<h3>List of transactions</h3>');
       response.write('<p>' + data.size + '</p>');
       response.end();
    });}

当然,您还必须正确处理错误情况,并且可能希望缓存响应getTx


投一票
评论(0)
赞赏(0)

求助中

解决了这个问题,预计可以帮助到

  • 0
  • 2
  • 7
  • 8
  • 0
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励