Итак, у меня проблема с запросом и NodeJS, это очень просто, но я не эксперт.
Код:
logged: function () {
var request = require('request');
test = "nothing!";
request('http://localhost:8080/log', function (error, response, body){
console.info('error:', error);
console.info('statusCode:', response && response.statusCode);
console.info('body:', body);
test = body;
});
console.info('test', test);
Выход:
Starting .../
test: nothing!
error: null
statusCode: 200
body: hi
спасибо Ариф Хан! это ответ





запрос является асинхронным, поэтому файл console.info внизу будет выполнен до того, как тестовой переменной будет присвоено тело.
Таким образом, console.info должен находиться внутри функции ответа на запрос.
Если вы хотите использовать тело позже вне функции ответа, это зависит от того, как вы планируете его использовать.
ответ был здесь: Как мне вернуть ответ от асинхронного вызова? Запрос - это асинхронный вызов!
Решение не очень красивое, но оно работает!
setTimeout(function() { console.info('test', test);}, 3000);
возможный дубликат stackoverflow.com/q/14220321/3461055