访问 GET 响应正文参数

Accessing GET response body parameters

我正在使用 request 包向 npm API 发出简单的 HTTP GET 请求。我试图从我的 nodeJS 后端中的任意函数获取 npm 包的下载计数。

这是我的 updateDownloadCount.ts 文件:

export function updateDownloads() {
    plugin.find(function (err, plugins: Array<any>) {
        for (let plugin of plugins) {
            var url = 'https://api.npmjs.org/downloads/point/last-month/' + plugin.package;

            request(url, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    console.log(body)
                }
            })
        }
    })
}

很好,我得到一串输出,如:

{"downloads":17627637,"start":"2016-08-29","end":"2016-09-27","package":"request"}

然而,当我尝试访问 downloads 计数时,即

console.log(body.downloads);

我得到 undefined 控制台记录...我如何访问正文变量?我觉得这应该超级简单,但我找不到任何文档。

如果正文是 string type

,请尝试解析正文
export function updateDownloads() {
  plugin.find(function(err, plugins: Array < any > ) {
    for (let plugin of plugins) {
      var url = 'https://api.npmjs.org/downloads/point/last-month/' + plugin.package;

      request(url, function(error, response, body) {
        if (!error && response.statusCode == 200) {
          if (body && typeof body == "string") {
            body = JSON.parse(body);
          }
          console.log(body.downloads);
        }
      })
    }
  })
}