我有一个运行 nodejs + express 4.0 的单页应用程序,该应用程序是一个过滤程序,让用户选择一些目标人群进行数据分析,然后一旦用户单击提交,应用程序会将过滤器作为 JSON 发送到节点服务器然后服务器会将 POST 请求通过管道传送到另一个正在运行 R 的服务器并进行一些计算并将结果文件发回供应用程序下载。对于小型和快速的计算运行良好,但对于大型数据集,我不断在 chrome 上获得 ERR_EMPTY_RESPONSE,没有额外的错误代码。我使用以下代码登录了节点中的管道
request.post({url:RSS.R, form:params,forever:true,timeout:10*60*1000},function(err,http,body){
console.log(err);
console.log(http.headers);
}).pipe(res);
即使我在 Chrome 上收到错误页面,我也能够记录来自 R 服务器的响应标头,所以我认为它是节点或 express 正在超时我的连接。我正在使用带有连接超时的 express 4.0 并设置以下代码
app.use(timeout('1800s'));
但它似乎没有做任何事情,几分钟后连接仍然超时。
所以我的问题是这里的门控项目是什么?还是我应该在节点级别设置其他东西而不是表达?
非常感谢您提前提供的帮助。
PS Firefox 和 IE 也有同样的问题,但似乎它们等待的时间更长,而不是得到 ERR_EMPTY_RESPONSE,FF 和 IE 只是空白页面并完全停止加载。