コードを呼び出すセクション。要求外のデータは未定義
** index.js **
var express = require('express');
var request = require('request');
var cheerio = require('cheerio');
var RagialJS = express();
RagialJS.get('/scrape', function(req, res){
console.log(getItemJSON("Minor Brisket", "Renewal"));
}) // End RagialJS.get
私は、これはJSONオブジェクトをプリントアウトすることを期待しかし、undefinedを返します。
** getItemJSON() **
// Returns buy, sell, and metrics of item as a JSON
function getItemJSON(itemName, server) {
var url = getItemURL(itemName, server);
request(url, function(error, response, html) {
if(!error && response.statusCode == 200) {
var $ = cheerio.load(html);
// Logic that parses and puts data in JSON here...
// console.log(json); works here
return json;
} else {
console.log(error);
}
}); // End request
// console.log(json); DOESN'T works here
}
ここでの問題は、私はconsole.log(json);
要求が終了する前ならば、それが正常に動作しますが、私は、要求(または別の関数)の外にそれを行うならば、それはundefinedを返しますということです。 (getItemURL()
の同じ問題)
この問題を解決する方法はありますか?または、データの要求に関する基本的な考え方を見落としていますか?
Full Source Code if interested
すべてのヘルプやコメントは大歓迎されています。