【问题标题】:MongoDB document streaming with HTTP response?带有 HTTP 响应的 MongoDB 文档流式传输?
【发布时间】:2013-04-24 18:54:56
【问题描述】:

在对 node.js 实时框架/包装器(derby.js、meteor、 socketIO ...)我意识到,更老式(抱歉)的宁静 API 方式 满足我的所有需求。

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

但问题来了:

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

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

有什么特别需要考虑的吗?

【问题讨论】:

    标签: node.js mongodb socket.io mongoose derbyjs


    【解决方案1】:

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

    一般的调用顺序是:

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

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

    【讨论】:

    • 非常感谢。当我在 2 小时前阅读有关播放框架的信息时,我看到了将 HTTP 响应标头的编码设置为“块”的概念。然后,当我分析一些 express.js 制作的网站时,我发现它也被使用了——所以 express 似乎利用“块”作为其默认值。因此,当从数据库中获取 mongoDB 文档并作为流交付时,所有文档都可以放入 HTTP 响应中(作为“块”)。当流结束时,HTTP 响应被标记为完成并准备好呈现。我想这和你说的完全一样,对吗?
    猜你喜欢
    • 2018-02-19
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多