gpt4 book ai didi

node.js - 如何在每次获得新的数据库条目时更新 html 而无需重新加载页面

转载 作者:太空宇宙 更新时间:2023-11-03 23:15:38 25 4
gpt4 key购买 nike

我正在设置一个 node.js 服务器,它不断检查 mongo 数据库中的新条目。如果有新条目出现,html 站点应该会更新,而无需重新加载并使用数据库中的数据。

每次有新条目时,我都可以接收数据,但无法更新网站。我查找了一些可能的工具,例如ajax或react.js,但我只是找不到完美的解决方案(甚至是解决方案)来说明其工作方式。

连接Mongodb并接收数据

MongoClient.connect('mongodb://192.168.128.128:27017/familientag', function(err, client) {
if (err) {
console.error('An error occurred connecting to MongoDB: ', err);
} else {
const db = client.db("familientag")
const collection = db.collection('data');
console.log("Connected successfully to server");

const changeStream = collection.watch();
changeStream.on('change', next => {
console.log(next.fullDocument['name']);
// Here I receive the data "_id" and "name"
});
}
});

我的index.ejs

<!DOCTYPE html>
<html>
<head>
<title>Dies ist ein Test</title>
</head>
<body>
<div id="target">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$.ajax({
type: 'GET',
url: '/test',
success: function(data) {
var html = data;
$('#target').html(html);
}
});
</script>
</body>
</html>

调用索引

app.get('/index', function (req, res) {
res.render('index');
});

每次从数据库读取新数据集时,我希望在索引站点上看到该名称,而无需重新加载窗口。

最佳答案

使用开放套接字应该可以帮助您。您可以将新数据传递到套接字主体,也可以简单地触发 UI 从 api 请求数据。

我建议查看socket.io:https://socket.io/很快就能开始。它是一个灵活的 Node 套接字框架,具有精彩的文档。

如果您想自己管理更少的套接字状态,Pusher 是一个不错的选择。带有自己的用户界面。 https://pusher.com/

关于node.js - 如何在每次获得新的数据库条目时更新 html 而无需重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55829506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com