【发布时间】:2013-10-05 14:42:38
【问题描述】:
我正在使用 Socket.IO、AngularJS、Request 和 Express,我试图从请求中提取一些数据,然后将其发送给客户端。这是我的功能:
var getJsonFromJsonP = function (url, callback) {
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
var jsonpData = body;
var json;
try {
json = JSON.parse(jsonpData);
}
catch(e) {
var startPos = jsonpData.indexOf('({');
var endPos = jsonpData.indexOf('})');
var jsonString = jsonpData.substring(startPos+1, endPos+1);
json = JSON.parse(jsonString);
}
callback(null, json);
} else {
callback(error);
}
})
}
var getScoring = function() {
var url = 'http://live.nhle.com/GameData/RegularSeasonScoreboardv3.jsonp';
var dataReturn;
getJsonFromJsonP(url, function (err, data) {
console.log(data);
return data;
});
}
io.sockets.on('connection', function(socket) {
socket.emit('init', { data: getScoring() });
});
getJsonFromJsonP 解决方案来自另一个帖子,它产生了良好的结果。
console.log(data) 在后端显示正确的数据,但客户端(AngularJS)没有得到它。如果我将return data 更改为return 'hello world',则“hello world”在客户端中显示为{ data : 'hello world' }。
【问题讨论】:
-
return JSON.stringify(data);是做什么的?
标签: node.js angularjs socket.io