我正在使用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,不是通过请求,但现在不是问题 - 我试过,它也是一样的。)
答案 0 :(得分:0)
以防万一有人感兴趣..我已经用Promises快速解决了这个问题。等待请求结果的函数需要一个Promise,它在请求调用中生成。