数据库插入数据,实时渲染到前端
Database insert data, real-time render to frontend
想法是水中的传感器将数据发送到我的数据库,我希望数据实时发送到前端,换句话说:数据库更新,然后前端更新。
我使用的工具:
- MongoDB
- NodeJS
- 套接字 io
- ReactJS
它实际上工作正常,这是我处理实时数据流的主要代码
const Zips = require("./dataSchema");
io.on("connection", (socket) => {
setInterval(()=>{
Zips.find().then((result) => {
socket.emit("output", result);
});
}, 5000)
});
#Zips 是模式使用猫鼬
我使用 setinterval 每 5 秒更新一次。
问题:
Socket-io 或 Mongodb 是否提供不需要 setInterval 或任何其他方式的函数或方法?
##编辑 11/8
射线显示文档有效。
解决方案:
io.on("connection",(socket)=>{
const changeStream = Zips.watch()
changeStream.on('change',(next)=>{
if(next.operationType=="insert"){
Zips.find().then((result) => {
socket.emit("output", result);
});
}
})
})
使用watch()
,然后回调函数提供了很多数据可以跟踪。
文档:change streams
想法是水中的传感器将数据发送到我的数据库,我希望数据实时发送到前端,换句话说:数据库更新,然后前端更新。
我使用的工具:
- MongoDB
- NodeJS
- 套接字 io
- ReactJS
它实际上工作正常,这是我处理实时数据流的主要代码
const Zips = require("./dataSchema");
io.on("connection", (socket) => {
setInterval(()=>{
Zips.find().then((result) => {
socket.emit("output", result);
});
}, 5000)
});
#Zips 是模式使用猫鼬
我使用 setinterval 每 5 秒更新一次。
问题:
Socket-io 或 Mongodb 是否提供不需要 setInterval 或任何其他方式的函数或方法?
##编辑 11/8 射线显示文档有效。
解决方案:
io.on("connection",(socket)=>{
const changeStream = Zips.watch()
changeStream.on('change',(next)=>{
if(next.operationType=="insert"){
Zips.find().then((result) => {
socket.emit("output", result);
});
}
})
})
使用watch()
,然后回调函数提供了很多数据可以跟踪。
文档:change streams