【问题标题】:NodeJS synchronous request from mongoose来自猫鼬的 NodeJS 同步请求
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 2018-09-30
      • 1970-01-01
      • 2018-06-09
      • 2018-12-31
      • 2014-07-30
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      相关资源
      最近更新 更多