我尝试使用JugglingDB ORM检索大量数据(来自MongoDB的1000多行)。如果我将限制设置为1001行,我的数据就完成了,但是一旦我升级到1002,数据就不完整了(如果我用cURL或浏览器点击它并不重要)。我不完全确定问题是什么,因为console.log显示了我的所有数据,但听起来我的响应标题或响应本身可能存在问题......这里是我尝试使用的代码:
function getAllDevices(controller) {
controller.Device.all({limit: parseInt(controller.req.query.limit)}, function(err, devices) {
// This shows all of my devices, and the data is correct
console.log(devices, JSON.stringify(devices).length);
controller.req.headers['Accept-Encoding'] = '';
controller.res.setHeader('transfer-encoding', '');
controller.res.setHeader('Content-Length', JSON.stringify(devices).length);
return controller.send({success: true, data: devices});
});
}
请求标题:
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Host localhost
回复标题:
Access-Control-Allow-Cred... true
Access-Control-Allow-Head... X-Requested-With,content-type
Access-Control-Allow-Meth... GET, POST, OPTIONS, PUT, PATCH, DELETE
Access-Control-Allow-Orig... *
Connection keep-alive
Content-Length 1610106
Content-Type application/json; charset=utf-8
Date Wed, 20 Aug 2014 17:20:51 GMT
Server nginx/1.6.0
X-Powered-By Express
值得注意的是,我使用nginx作为我的Node服务器的反向代理,这就是配置的样子:
location /nodeJs/ {
proxy_pass http://127.0.0.1:3005/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
答案 0 :(得分:0)
我相信我已经解决了这个问题,而且在我的主要 nginx.conf 文件中,我再次说,这似乎是一个nginx更改...
gzip on;
gzip_types application/json;
将application / json添加到gzip_types最终是解决方案。