从Node.js中的URL检索JSON的最佳方法是什么

时间:2014-05-25 03:15:38

标签: json node.js request sails.js

所以我一直在使用sailsjs从外部网站请求json数据,然后将该数据发布到create route。当我第一次运行它时,它将工作大约10-12次,然后应用程序将崩溃与event.js抛出;连接ETIMEDOUT

寻找更好的方法从https://cex.io/api/ticker/GHS/BTC请求json数据。

所以我正在使用sailsjs并在文件config / bootstrap.js中添加了我的服务来运行。

module.exports.bootstrap = function (cb) {

    // My
    tickerService.ticker();

    // Runs the app
    cb();
};

这是我的尝试之一~file api / services / tickerservice.js

function storeTicker(){
    console.log('Running!');

    //retrieves info from https://cex.io/api/ticker/GHS/BTC
    require("cexapi").ticker('GHS/BTC', function(param){

        console.log(param);

        Tickerchart.create( param, function tickerchartCreated (err, tickerchart) {});

    });
} 

module.exports.ticker = function(){

    setInterval(storeTicker, 6000);

};

Cex.io Library Github https://github.com/matveyco/cex.io-api-node.js/blob/master/cexapi.js

1 个答案:

答案 0 :(得分:1)

我使用了模块请求并观察了它的错误。我也升级到sails v0.10.x应用程序不再崩溃:D

function storeTickerchart(){
    //console.log('Running!');
    var request = require("request");

    var url = "https://cex.io/api/ticker/GHS/BTC";

    request({
        url: url,
        json: true
    }, function (error, response, body) {

        if (!error && response.statusCode === 200) {
            //console.log(body); //Print the json response
            Tickerchart.create(body, function tickerchartCreated (error, tickerchart) {
                if(error) console.log("Oops Error");
            });
        }
    });



} 

module.exports.ticker = function(){

    setInterval(storeTickerchart, 5000);

};