2016-10-09 15 views
0

私はNode.jsが新しく、問題があります。NodeJSの変数にJSONからデータを保存する方法

私はgithub APIからダウンロードしたJSONオブジェクトからデータを保存します。

var http = require("http"); 
var express = require('express'); 
var app = express(); 
var github = require('octonode'); 
var client = github.client(); 

app.set('port', process.env.PORT || 8000); 

var server = app.listen(app.get('port'), function() { 
    console.log('Express server listening on port ' + server.address().port); 
}); 

app.get('/getUsers', function (req, response) { 

    response.writeHead(200, {'Content-Type': 'text/json'}); 
    var result; 

    client.get('/users/angular/repos', {}, function (err, status, body, headers) { 
     result = response.write(JSON.stringify(body)); 
     console.log(result); //JSON object 
     return result; 
}); 

console.log(result); //undefined 

}); 

オブジェクトから単一変数へデータを保存するにはどうすればよいですか?

(私はそれをArrayに変換し、有用なデータを取りたいです)。

+0

'body'をストリング化する場合、' body'はすでにオブジェクトですか? –

答えて

0

まだ定義されていないため、非同期呼び出しの外部で結果を得ることはありません。この値を取得するには、クエリのコールバック内でメソッドを呼び出すか、asyncモジュールを使用して渡します。

app.get('/getUsers', function (req, response) { 

    response.writeHead(200, {'Content-Type': 'text/json'}); 
    var result; 

    client.get('/users/angular/repos', {}, function (err, status, body, headers) { 
     result = response.write(JSON.stringify(body)); 
     console.log(result); //JSON object 
     doSomeOperationOnResult(result) 
}); 
}); 

function doSomeOperationOnResult(result){ 
//Your operating code 
} 
+0

働いています、ありがとう – majkel170792

関連する問題