我正在使用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
控制台...如何访问正文变量?我觉得这应该是非常简单的,但我无法在其上找到任何文档。
答案 0 :(得分:1)
如果是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);
}
})
}
})
}