Я пытаюсь получить ответ JSON через метод запроса и возвращать вывод, чтобы я мог хранить его в переменной при вызове функции. когда я регистрирую ответ в методе запроса, он работает нормально. Однако, когда я возвращаю вывод, он не возвращается.Невозможно вернуть тело метода запроса в nodejs
var getAPIresponse = function(url) {
var request = require('request');
request(url, function(error, response, body) {
if(!error && response.statusCode == 200) {
console.log(body); // WORKS PERFECTLY
return body; // I Believe the issue is here
} else {
console.log("Error: "+ error);
}
});
};
router.get('/', function (req, res) {
var poolList = getAPIresponse("www.addAURL");
console.log(poolList); // DOESN'T WORK. REPORTS AS UNDEFINED
res.render('index', model); // THIS IS JUST SAYS HELLO WORLD
});
[Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call) Вы не может. Когда 'request()' является асинхронным, 'getAPIresponse()' фактически завершает свое выполнение, возвращая 'undefined' в' poolList', перед вызовом callback и 'body'. –