Javascript 如何使用node js从http(get)响应中获取巨大的字符串数据而无需缓冲?

Javascript 如何使用node js从http(get)响应中获取巨大的字符串数据而无需缓冲?,javascript,ajax,node.js,rest,http,Javascript,Ajax,Node.js,Rest,Http,我试图通过从节点js调用httpget(REST)来获取XML作为字符串。我认为服务器只发送一次响应,但节点多次收到res.on(‘数据’)的成批响应。当我连接多个块时,我得到了完整的数据。但这需要很多时间。我想一次性获得所有数据。请提供您的看法。提前感谢。您不能“一次获取所有数据”,因为TCP不是这样工作的。所以,如果您希望这样,那么在其他层会有一些缓冲,无论您是否显式地进行缓冲 如果要解析正在下载的XML,那么可以考虑使用一个支持一次解析块的XML解析模块,例如 否则,如果您想要更用户友好的

我试图通过从节点js调用httpget(REST)来获取XML作为字符串。我认为服务器只发送一次响应,但节点多次收到res.on(‘数据’)的成批响应。当我连接多个块时,我得到了完整的数据。但这需要很多时间。我想一次性获得所有数据。请提供您的看法。提前感谢。

您不能“一次获取所有数据”,因为TCP不是这样工作的。所以,如果您希望这样,那么在其他层会有一些缓冲,无论您是否显式地进行缓冲

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


否则,如果您想要更用户友好的东西(但需要完整的缓冲XML字符串),您可以考虑使用with
xmlMode:true

,需要记住的一点是,许多XML解析器需要在实际开始从数据构建对象之前将整个字符串加载到内存中。这增加了另一层延迟,应该考虑。谢谢你的建议。我知道,将整个XML加载到内存中会消耗内存,并且会在一层或另一层进行缓冲。但是我需要它,因为我需要将它传递给Sigma.js来绘制UI组件。另外,当我说数据被缓冲时,它不会被标记/节点破坏,而是被截断并部分接收字符串。因此,除非我附加所有部分,否则它对我没有任何用处。另外,我并没有试图解析XML,XML字符串是在服务器端形成的,并作为响应发送到节点js。再次感谢。