Node.js 使用HTTP响应的MongoDB文档流?

Node.js 使用HTTP响应的MongoDB文档流?,node.js,mongodb,socket.io,mongoose,derbyjs,Node.js,Mongodb,Socket.io,Mongoose,Derbyjs,在对node.js实时框架/包装器(derby.js、meteor、, socketIO…)我意识到,restful API的更老式(抱歉)的方式 适合我所有的需要 我认为我必须使用正在进行的套接字连接的原因之一是因为我想 从数据库流式传输我的MongoDB文档,而不是将它们全部加载到服务器上的内存中。我认为这是推荐的方法,因为它最大限度地减少了服务器资源的使用 但问题是: 一个简单的文档查询流式处理是否适用于普通HTTP请求/响应 模型还是我们必须建立一个持续的套接字连接来将所有文档流式传输到

在对node.js实时框架/包装器(derby.js、meteor、, socketIO…)我意识到,restful API的更老式(抱歉)的方式 适合我所有的需要

我认为我必须使用正在进行的套接字连接的原因之一是因为我想 从数据库流式传输我的MongoDB文档,而不是将它们全部加载到服务器上的内存中。我认为这是推荐的方法,因为它最大限度地减少了服务器资源的使用

但问题是:

一个简单的文档查询流式处理是否适用于普通HTTP请求/响应 模型还是我们必须建立一个持续的套接字连接来将所有文档流式传输到客户端

注意:我只需要在ajax调用中加载文档,而不需要使用新的 将文档推送到客户端(因此实际上不需要实时)


有什么特别要考虑的吗?

< p>您可以使用标准的HTTP请求/响应API来查询查询结果。 调用的一般顺序是:

res.writeHead(<header content>)
res.write(<data>)
...
res.write(<data>)
res.end();
res.writeHead()
res.write()
...
res.write()
res.end();

但是这些调用是异步进行的,由查询中的流事件驱动。

非常感谢。当我在2小时前读到play框架时,我看到了将HTTP响应头的编码设置为“chunk”的概念。然后,当我分析一些express.js制作的网站时,我发现这也被使用了——所以express似乎利用了“块”作为默认值。因此,当mongoDB文档从数据库中获取时,所有文档都可以作为流交付到HTTP响应中(即“块”)。当流结束时,HTTP响应被标记为已完成并准备好呈现。我想这和你提到的完全一样,是吗?