来自mongoose的NodeJS同步请求

时间:2015-04-14 03:27:18

标签: node.js asynchronous mongoose

我正在使用Mongo在NodeJS中开发一个网站。该网站的一部分有url localhost / api /并返回一些JSON,它适用于从客户端获取。现在我想从服务器处理这些数据(预呈现它)。基本上,我有一个函数应该返回API部分的结果。它看起来像这样:

request('http://localhost:8000/api/', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    return body // return the JSON array from API which works OK
  }
})

不幸的是,它不起作用并且仅返回“500:TypeError:无法在App处调用未定义的方法'map'。”代码在它呈现的那一刻根本没有它的值,所以我理想地希望使函数以某种方式同步,因为我习惯于使用其他语言。

如果我直接从函数返回JSON数组(不需要请求模块),它就可以工作。因此,我知道问题来自于我对异步编程的错误使用。你会建议什么作为解决方案? (我也可以直接问mongo,不是通过请求,但现在不是问题 - 我试过,它也是一样的。)

1 个答案:

答案 0 :(得分:0)

以防万一有人感兴趣..我已经用Promises快速解决了这个问题。等待请求结果的函数需要一个Promise,它在请求调用中生成。