这可能是一个愚蠢的问题,但我的目的是返回一个名为user的对象,然后我可以正确使用它。 http node.js文档中充满了console.log,但没有提到有关返回对象的内容。 这是我的代码(来自标准文档),我也尝试分配用户或在end方法中返回它,但它总是返回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();
答案 0 :(得分:1)
返回一些可以解析为对象结构的东西。例如,如果您返回JSON,则可以使用JSON.parse
来解析它。
我还尝试分配用户或在end方法中返回它,但它总是返回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
变量。您还依赖自动分号插入(在您的函数表达式后需要;
,因为它不是声明),我不建议这样做,但有些人喜欢