【发布时间】:2021-12-30 11:42:48
【问题描述】:
我正在构建 MERN 堆栈应用程序,有一次我需要从 mongodb 数据库中获取大量数据,所以我遇到了 mongodb 流,我想知道实现这一点的最佳方法是什么。我已经尝试了这两个选项:
var stream = Product.find({}).stream();
stream.on('error', (err) => {
console.error(err)
});
stream.on('data', (doc) => {
return res.json(doc);
});
在此示例中,我收到一个错误在将标头发送到客户端后无法设置标头。第二次尝试:
await Product.find({})
.cursor()
.pipe(JSON.stringify())
.pipe(res);
在此示例中,我得到 无法读取未定义的属性“on”。我无法找到整个 cursor().pipe() 链接的正确解释,所以如果有人知道,如果你能解释这个逻辑,我会非常高兴。 我不想在这个例子中使用分页。
【问题讨论】:
-
你应该写
.pipe(JSON.stringify),而不是.pipe(JSON.stringify())。现在你执行JSON.stringify并将返回值传递给.pipe()...