node.js请求返回对象
node.js request returning object
这可能已经是一个愚蠢的问题了,但我这样做的目的是 return 一个名为 user 的对象,然后我可以在其中正确使用它。 http node.js 文档充满了 console.log 但没有提到 returning 对象。
这是我的代码(来自标准文档),我也尝试在最终方法中分配用户或 return 它,但它总是 return false。
var options= {
host : 'localhost',
port : 3000,
path : '/users?userName=Rosella.OKon56', // the rest of the url with parameters if needed
method : 'GET' // do GET
};
callback = function(response) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function () {
//console.log(str);
});
}
var req = http.request(options, callback);
req.end();
Return 然后您可以将其解析为对象结构。比如你returnJSON,你可以用JSON.parse
来解析。
where I also tried to assign the user or return it in the end method but it always return false
如果你想对解析后的结果做些什么,你可以在你的 end
回调中调用一个带有结果的函数,就像这样:
callback = function(response) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function () {
doSomethingWithUserObject(JSON.parse(str));
});
}
旁注:您的代码正在成为 The Horror of Implicit Globals 的牺牲品;您需要声明您的 callback
变量。您还依赖自动分号插入(您的函数表达式后需要 ;
,因为它不是声明),我不建议这样做,但有些人喜欢。
这可能已经是一个愚蠢的问题了,但我这样做的目的是 return 一个名为 user 的对象,然后我可以在其中正确使用它。 http node.js 文档充满了 console.log 但没有提到 returning 对象。 这是我的代码(来自标准文档),我也尝试在最终方法中分配用户或 return 它,但它总是 return false。
var options= {
host : 'localhost',
port : 3000,
path : '/users?userName=Rosella.OKon56', // the rest of the url with parameters if needed
method : 'GET' // do GET
};
callback = function(response) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function () {
//console.log(str);
});
}
var req = http.request(options, callback);
req.end();
Return 然后您可以将其解析为对象结构。比如你returnJSON,你可以用JSON.parse
来解析。
where I also tried to assign the user or return it in the end method but it always return false
如果你想对解析后的结果做些什么,你可以在你的 end
回调中调用一个带有结果的函数,就像这样:
callback = function(response) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function () {
doSomethingWithUserObject(JSON.parse(str));
});
}
旁注:您的代码正在成为 The Horror of Implicit Globals 的牺牲品;您需要声明您的 callback
变量。您还依赖自动分号插入(您的函数表达式后需要 ;
,因为它不是声明),我不建议这样做,但有些人喜欢。