如何在Node JS + mongodb REST API中实现数据流



我正在开发Node JS + mongodb的Rest API,使用Mongoose的中间件处理,其中一个方法允许恢复与特定用户相关的内容。

到目前为止,我一直在检索所有用户的内容,但是数据量开始增长,现在我需要以某种方式流式传输数据。

我想实现的行为是服务器用10-20个项目的流回答请求,然后,如果客户端需要更多的数据,它将需要发送另一个请求,该请求将用以下10-20个项目回答。

我所能想到的就是回答前10-20个项目,然后,在客户端需要更多数据的情况下,为我的方法提供一个新的(可选的)参数,这将允许客户端发送最后一个项目的id,因此服务器可以发回下面的10-20个项目。

我知道这种方法会起作用,但我觉得它太原始了;必须有一种更清晰的方式来实现这种行为,因为它是许多web应用程序必须实现的行为。

所以,我的问题是:你知道解决这个问题的更好方法吗?

提供从请求中读取偏移量和限制的能力,然后执行如下操作:

db.collection.find().skip(20).limit(10)

另外,在你构建的api上设置默认值,这样别人就不能一次请求一百万条记录。也许最大结果总是200,如果请求没有设置上述参数,则最多返回前200个结果。

最新更新