我正在使用MongoDB应用程序创建Node.Js,每次MongoDB集合上发生任何更改时,我都需要刷新我的HBS页面之一。
不知道该怎么办。最好的方法是什么?
干杯。
答案 0 :(得分:2)
您可以阅读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' });
答案 1 :(得分:0)
感谢您的所有帮助。我发现的最佳(也是最简单)解决方案是将Websockets与Socket.io结合使用。 我使用了以下逻辑:
socket.emit('UpdateOnDatabase');
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();
});
我的思维方式有所改变,但它的工作方式完全符合我的要求。
干杯。