Angularjs ngResource未返回json对象格式的数据
我已经设置了一个基本的角度和节点应用程序。节点服务器正在返回JSON格式的响应:Angularjs ngResource未返回json对象格式的数据,angularjs,json,node.js,ngresource,Angularjs,Json,Node.js,Ngresource,我已经设置了一个基本的角度和节点应用程序。节点服务器正在返回JSON格式的响应: [{"FeedId":"56aa6aece3d7031b044b34de","Name":"geeksforgeeks","FeedUrl":"http://www.geeksforgeeks.org/feed/?paged=INDEX","FeedItems":[]}] 节点方法: router.get('/feeds', function(req, res, next) { request.get(w
[{"FeedId":"56aa6aece3d7031b044b34de","Name":"geeksforgeeks","FeedUrl":"http://www.geeksforgeeks.org/feed/?paged=INDEX","FeedItems":[]}]
节点方法:
router.get('/feeds', function(req, res, next) {
request.get(webApiUrl + '/api/Feed', { headers: {
'Content-Type': 'application/json'
}}, function(error, response, body)
{
if(error) {
return next(error);
}
res.json(body);
});
});
在角度方面,我使用的是ngResource,我已将配置定义为:
this.$resource("http://localhost:3000/feeds/:feedName", {},
{
transformResponse: function(data, headers) {
return angular.fromJson(data);
},
post: {method:'POST'},
get : {method: 'GET'},
query: {method: 'GET', isArray: false },
update: {method: 'PUT', isArray: false},
'delete': {method:'DELETE', params: { feedName:"@feedName" }}
});
我面临的问题是,ngResource并没有以json对象格式返回结果,而是转换字符数组中的响应
var resource = this.dataAccessService.getFeedResource();
this.feeds = [];
let _me = this;
resource.get((data) => {
console.log(data); **//array of characters**
angular.forEach(data, function(ff) {
console.log(ff.Name);**//undefined**
});
});
如何使ngResource以类似于节点服务器返回的json对象格式返回数据?尝试删除
transformResponse
。删除了transformResponse函数,但结果仍然相同。我已经扩展了这个问题,添加了消耗ngResource并试图解析结果的代码。似乎您正在向另一台服务器发出请求,而该响应将作为字符串返回。尝试直接输出字符串。我猜您是在使用res.json()
包装额外的引号。注意,我在nodeThanks中做的不多。用res.send()替换res.json()可以解决这个问题。您可以添加您的修复程序来回答这个问题吗?它将有助于未来的访问者。请尝试删除transformResponse
。删除了transformResponse函数,但结果仍然相同。我已经扩展了这个问题,添加了消耗ngResource并试图解析结果的代码。似乎您正在向另一台服务器发出请求,而该响应将作为字符串返回。尝试直接输出字符串。我猜您是在使用res.json()
包装额外的引号。注意,我在nodeThanks中做的不多。用res.send()替换res.json()可以解决这个问题。您可以添加您的修复程序来回答这个问题吗?这将有助于未来的游客。