我正在编写一个简单的Node.JS应用程序,用于与GitHub API配合使用以拉取用户统计信息。 我向/repos/:user/:repo_name/stats/contributors
发送了一个GET请求,这个请求应该会返回一个JSON字符串。以下是我的函数:
function getRepoCommits(token,repos,user,callback) {
for (var i=0; i<repos.length; i++) {
var returnChunk = '';
var full_name = repos[i].full_name;
//console.log(full_name);
var options = {
host: 'api.github.com',
path: '/repos/'+full_name+'/stats/contributors',
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'token '+token,
'Content-Type': 'application/x-www-form-urlencoded',
}
};
var request = https.request(options, function(res) {
//res.setEncoding('utf8');
res.on('data', function(chunk) {
returnChunk += chunk;
});
res.on('end', function(chunk) {
console.log(returnChunk);
var stats = JSON.parse(returnChunk);
console.log(stats.length);
for (var j=0;j<stats.length;j++) {
}
if (i == repos.length-1) {
//callback();
}
})
});
request.on('error',function(err) {
callback(err);
console.log(err);
});
request.end();
}
}
感兴趣的领域就在这里:
res.on('end', function(chunk) {
console.log(returnChunk);
var stats = JSON.parse(returnChunk);
console.log(stats.length);
for (var j=0;j<stats.length;j++) {
}
if (i == repos.length-1) {
//callback();
}
})
当我检查
returnChunk
的值时,它是一个符合以下格式的有效JSON字符串:[{json}]
然而,当函数到达
JSON.parse
时,它会抛出以下错误:基本上,在解析字符串之前,它会在末尾添加额外的SyntaxError: Unexpected token [
[]
,变成:[{json}][]
我已经连续几个小时尝试解决这个问题,但是似乎找不到原因。你有什么想法吗?
[]
添加到末尾的意思是什么?你在日志中看到了吗? - Blue Skies