如果传递了正确的参数(url
),我创建了一个URL Shortener Web服务,它返回JSON。
现在,因为我正在学习Node.js,我正在尝试创建一个Node.js包装器来解析数据并在控制台中打印它们(现在)。
我正在使用http
和request
模块来解析我从网址响应中收到的JSON数据。
这是我打印数据的代码:
var request = require('request');
var http = require('http');
var url = process.argv[2];
var apiUrl = "http://shtr.ml/stats-api.php?url=" + url;
http.get(apiUrl,function(res){
var body = '';
res.on('data',function(chunk)
{
body += chunk;
});
res.on('end',function(){
const resp = JSON.parse(body);
console.log(JSON.stringify(resp));
if(resp.message.toString() == "Success")
{
console.log("Short URL : ",resp.short-url);
console.log("Long URL : ",resp.long-url);
console.log("Creation Date : ",resp.created);
console.log("Total Clicks : ",resp.clicks);
}
else
{
console.log("Stats Error !!");
}
});
}).on('error',function(e){
console.log("Got an error ",e);
});
现在,以下是我的代码输出:
C:\node-shtr-module>node index.js http://shtr.ml/ZVFWdk
{"message":"Success","short-url":"http://shtr.ml/ZVFWdk","long-url":"https://github.com/beingadityak/dot-net-mysql","created":"2016-09-27 22:58:06","clicks":"21"}
Short URL : NaN
Long URL : NaN
Creation Date : 2016-09-27 22:58:06
Total Clicks : 21
为什么即使JSON包含URL,resp.short-url
也会返回NaN
?请帮忙。
一如既往,提前谢谢。
答案 0 :(得分:2)
使用它访问它
resp['short-url']
和resp['long-url']