node.js 请求对象- return 进一步操作的响应体
node.js request object- return response body for further operation
对此可能有一个简单的答案,但我正在尝试取回响应的主体并返回到另一个函数。这当然是一个范围问题。
这是我的代码,如有任何想法,我们将不胜感激:
var request = require("request");
var myJSON = require("JSON");
function getMyBody(url) {
var myBody;
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
myBody = body;
}
});
return(JSON.parse(myBody));
}
js_traverse(getMyBody(url));
谢谢
格伦
声明:
return(JSON.parse(myBody));
在 ajax 调用 returns 你 body 之前执行。您需要将回调传递给 getMyBody() 以使用 request() returns:
的 body 执行某些操作
var request = require("request");
var myJSON = require("JSON");
function getMyBody(url, callback) {
request({
url: url,
json: true
}, function (error, response, body) {
if (error || response.statusCode !== 200) {
return callback(error || {statusCode: response.statusCode});
}
callback(null, JSON.parse(body));
});
}
getMyBody(url, function(err, body) {
if (err) {
console.log(err);
} else {
js_traverse(body);
}
});
对此可能有一个简单的答案,但我正在尝试取回响应的主体并返回到另一个函数。这当然是一个范围问题。
这是我的代码,如有任何想法,我们将不胜感激:
var request = require("request");
var myJSON = require("JSON");
function getMyBody(url) {
var myBody;
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
myBody = body;
}
});
return(JSON.parse(myBody));
}
js_traverse(getMyBody(url));
谢谢
格伦
声明:
return(JSON.parse(myBody));
在 ajax 调用 returns 你 body 之前执行。您需要将回调传递给 getMyBody() 以使用 request() returns:
的 body 执行某些操作var request = require("request");
var myJSON = require("JSON");
function getMyBody(url, callback) {
request({
url: url,
json: true
}, function (error, response, body) {
if (error || response.statusCode !== 200) {
return callback(error || {statusCode: response.statusCode});
}
callback(null, JSON.parse(body));
});
}
getMyBody(url, function(err, body) {
if (err) {
console.log(err);
} else {
js_traverse(body);
}
});