【发布时间】:2015-06-19 13:12:03
【问题描述】:
我正在使用 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: Cannot call method 'map' of undefined at App”。代码在呈现的那一刻根本没有价值,所以我理想地希望使函数以某种方式同步,就像我习惯于其他语言一样。
如果我直接从函数返回我需要的 JSON 数组(而不从请求模块请求它),它就可以工作。因此,我知道问题出在我对异步编程的错误使用上。您会推荐什么作为解决方案? (我也可以直接询问 mongo,而不是通过请求,但现在这不是问题 - 我试过了,结果是一样的)。
【问题讨论】:
标签: node.js asynchronous mongoose