我有一个我无法弄清楚发生了什么的事情。
代码:
function loadConnections(req, res) {
getConnections(req.user)
.then(function(results){
console.log('here');
console.log(results);
console.log(results.length);
var returnObject = {}
returnObject.count = results.length;
//returnObject.results = results[0]; // PROBLEM LINE
res.status(200).send(returnObject);
});
}
问题我正面临着。在这种情况下,它返回一个包含1个对象的数组。该数组看起来像:
[{id: XXX, test: YYY, test1: ZZZ}]
这些都是我尝试和测试过的:
returnObject.results = results[0].id; // works
returnObject.results = results[0].test; // works
returnObject.results = results[0].test1; //works
returnObject.results = results[0]; // doesn't work
returnObject.results = results; //doesn't work
但是如果我尝试传递整个对象或整个数组,它就会遇到问题,并且不会将响应发送给控制器。
有什么想法吗?
答案 0 :(得分:0)
如果您使用快递,请尝试
res.send(200, returnObject);
或
res.json(200, returnObject);
应该做的伎俩!
答案 1 :(得分:0)
就个人而言,我只计算数组到达Angular客户端后的长度,而不是在服务器上。但是,您应该能够通过这样做来完成您尝试做的事情:
var returnObject = {
'count': results.length,
'results': results
};
res.json(returnObject);
这里是文档:http://expressjs.com/en/api.html#res.json
同样仅针对一般故障排除,您要做的第一件事就是找出不一致的起点。在发送响应之前,数据在服务器上是否正确?当您的API处理程序收到响应时,数据在客户端上是否正确? (我假设是$ resource,或者你正在使用$ http)。因此,在从服务器发送响应之前添加这样的行,然后在客户端收到响应后添加类似的行:
console.log(JSON.stringify(returnObject, null, 2));
答案 2 :(得分:0)
原来这是我的lodash库。我一直在使用_.pluck和它的某个地方,它已经停止工作了。不得不将其更新为_.map。