【问题标题】:Node.js response.write buffer limit restrictionsNode.js response.write 缓冲区限制限制
【发布时间】:2012-09-18 22:42:57
【问题描述】:

我正在使用带有一些附加模块的 nodeJS 从一组网站中进行网页抓取和媒体项目识别。

节点服务器基本上会返回页面上标识的所有项目及其相关元数据的 JSON 标记。 JSON数据是正确生成的,因为我可以在服务器日志中看到它但是当我将它写入客户端时,由于某种原因JSON响应被终止。

我使用所有浏览器并使用其他客户端对此进行了测试,这似乎表明 response.write(response, 'utf-8') 可能没有发送整个数据或连接关闭了一些问题原因。

我验证了我的测试用例不涉及分块,因此如果客户端仍在等待下一个数据块,则不会出现连接被客户端主动关闭的问题。即 response.write 在这种情况下返回 true,这意味着所有数据都已写入客户端。

关于什么可能导致连接终止或响应被截断的任何指针?对于较小尺寸的 JSON 响应,客户端会正确接收响应。

Code: 
return parseDOM(page, url, function(err, response){
            if(err){
                res.writeHeader(200, {'Content-Type':'application/json'});
                res.end('Error Parsing DOM from ' + url);
                e.message = 'Error Parsing DOM';
                callback(e, req, res, targetUrl);               
                return;
            }
            else {
                if(response){
                    res.writeHeader(200, {'Content-Type':'application/json', 'Content-Length':response.length});
                    console.log(response);
                    res.write(response, 'UTF-8');
                    res.end();
                    callback(null, req, res, targetUrl);
                    return;
                }
            }
        }); 

【问题讨论】:

    标签: node.js


    【解决方案1】:

    对不起。我的错。我看到内容长度是错误的。通过问题确定的解决方案: Node.js cuts off files when serving over HTTPS

    【讨论】:

      猜你喜欢
      • 2014-09-11
      • 2011-06-15
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多