MongoDB collection 变化时自动刷新页面

Refresh page automatically when MongoDB collection changes

我正在用 MongoDB 制作一个 Node.Js 应用程序,每次我的 MongoDB collection 发生变化时,我都需要刷新我的 HBS 页面之一。

不知道我应该做什么。这样做的最佳方法是什么?

干杯。

您可以阅读 Mongodb 或 mongoose 更改流,您可以在更改时观看这些流

猫鼬网站的典型例子:

// Create a new mongoose model
const personSchema = new mongoose.Schema({
  name: String
});
const Person = mongoose.model('Person', personSchema, 'Person');

// Create a change stream. The 'change' event gets emitted when there's a
// change in the database
Person.watch().
  on('change', data => console.log(new Date(), data));

// Insert a doc, will trigger the change stream handler above
console.log(new Date(), 'Inserting doc');
await Person.create({ name: 'Axl Rose' });

您可以在 mongoose or mongo 网站上阅读更多内容

感谢您的帮助。我发现的最好(也是最简单)的解决方案是使用带有 Socket.io 的 websockets。 我使用了以下逻辑:

  • 在我的新用户页面上,我在提交事件中添加了这个:
socket.emit('UpdateOnDatabase');
  • 我的 app.js:
io.on('connection', function(socket){
    socket.on('UpdateOnDatabase', function(msg){
        socket.broadcast.emit('RefreshPage');
    });
});
  • 在我的主页中,这是我要刷新的页面:
var socket = io.connect('http://localhost:3000');
    socket.on('RefreshPage', function (data) {
        location.reload();
    });

我稍微改变了我的思维方式,但它完全符合我的要求。

干杯。