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 变量。您还依赖自动分号插入(您的函数表达式后需要 ;,因为它不是声明),我不建议这样做,但有些人喜欢。