node.js - 如何在 NodeJS 中等待来自 MongoDB 的新数据?
问题描述
我正在做一个聊天项目,NodeJS 必须等待 25 秒才能获得来自 MongoDB 的新数据,还有其他选择吗?
while(true) {
db.messages.find({
...
}).then(result) => {
if (result.length > 0) {
return result;
}
})
}
更新:
let secs = 0;
const iv = setInterval(() => {
secs++;
db.messages.find({
...
}).then(result) => {
if (result.length > 0) {
clearInterval(iv);
res.json(result);
return;
}
});
if (secs === 25)
clearInterval(iv);
}, 1000);
解决方案
const collection = db.collection('messages');
const changeStream = collection.watch();
changeStream.on('change', next => {
// process next document
});
推荐阅读
- java - 如何从组合键中设置和获取值
- scala - Spark 驱动程序以代码 137 终止并且没有错误消息。原因是什么?
- javascript - 如何检查数组是否包含任何两个特定字符串
- angular - Angular 发布请求没有 req.user 信息
- java - 类中的方法不能应用于给定类型。必需:无参数
- typescript - 从 Select 选项的值中为按钮动态添加 routerlink
- dart - Dart:如何检查变量类型是否为字符串
- javascript - 当我使用实时服务器查看页面时显示图像,但是当我在浏览器中打开 html 文件时没有显示
- apache-spark - Spark sql 在 Json 数据上使用 Kafka 流式传输:函数 from_json 无法解析来自 kafka 主题的多行 json
- laravel - Coinpayment Laravel 集成。除以零异常