如何在没有缓冲的情况下使用节点js从http(GET)响应中获取大量字符串数据?

时间:2014-07-31 13:00:54

标签: javascript ajax node.js rest http

我试图通过从节点js调用HTTP GET(REST)来将XML作为字符串。我认为服务器只发送一次响应,但节点多次接收res.on('data')时会以块的形式接收响应。当我连接多个块时,我得到了完整的数据。但这需要很多时间。我希望一次性获取所有数据。请提供您的意见。提前谢谢。

1 个答案:

答案 0 :(得分:2)

你不能只是“一次性获取所有数据”,因为这不是TCP的工作方式。因此,如果您期望这样,那么无论您是否明确地执行此操作,都会在某个其他层进行缓冲。

如果您要解析正在下载的XML,那么您可能会考虑使用支持一次解析块的XML解析模块,例如sax

否则,如果您想要更加用户友好的内容(但需要完整的缓冲XML字符串),您可以考虑将cheerioxmlMode: true一起使用。