2013-04-24 96 views
0

经过对node.js实时框架/包装(derby.js,流星, socketIO ...)的全天研究之后,我意识到,更老式的(遗憾的)安静的API 适合所有我的需求。MongoDB文件流与HTTP响应?

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

但这里的问题是:

是否与普通的HTTP请求/响应 模型一个简单的文档查询工作流还是我们必须建立一个持续的插座连接传输所有文件到客户端?

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

有什么特别的考虑?

回答

1

您可以使用标准HTTP请求/响应API来传输查询的结果。

调用的一般顺序是:

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

但是你让那些异步调用,通过查询流事件驱动。

+0

非常感谢。虽然我在2小时前阅读了关于播放框架的内容,但我看到了将HTTP响应头的编码设置为“块”的概念。 然后,当我分析了一些express.js制作的网站时,我发现它也被使用 - 所以表达似乎将“块”用作其默认值。 所以,当从数据库中提取mongoDB文档时,所有文档都可以放入HTTP响应(作为“块”)。当流结束时,HTTP响应被标记为已完成并准备呈现。 我想这跟你提到的完全一样,是真的吗? – JoeFrizz 2013-04-25 14:10:16

+0

@JoeFrizz是的,没错。 – JohnnyHK 2013-04-25 14:34:05