2015-09-19 3 views
0

Как отправить объект «данные» объекта JSON, возвращенный модулем npm «blockchain.info» в обратном вызове «onRequest». Я хочу записать эти данные в браузере.отправка объекта JSON из модуля npm в браузер

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

ответ

0

data не существует в рамках onRequest. Learn about variable scope.

getTx также представляется асинхронной функцией, вы не можете просто «вернуть» ее из обратного вызова (в случае, если вы хотите попробовать это). Прочитайте this question, чтобы узнать об этом.

простое решение было бы сделать вызов в обработчике запроса события:

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

} 

Конечно, вы должны poperly обработать случай ошибки, а также и можете кэшировать ответ от getTx.

 Смежные вопросы

  • Нет связанных вопросов^_^