我正在尝试在表格中显示我的数据库的结果。我希望用户能够在不刷新页面的情况下查看表中所做的每个更改(插入,更新或删除)。
我的第一个问题是如何在表格中获取我的数据库数据。我还希望用户采取的操作能够从其他用户处清晰可见(例如编辑,删除,创建)。
这是我的server.js
var io=require('socket.io'), mysql=require('mysql');
var express = require('express');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'lolast'
});
connection.connect(function(err) {
if(err) {
console.log('error when connecting to db:', err);
setTimeout(handleDisconnect, 2000);
}
});
var ws=io.listen(3000);
var socketCount = 0
ws.on('connection', function(socket) {
socketCount++
// Let all sockets know how many are connected
ws.emit('users connected', socketCount);
socket.on('disconnect', function() {
// Decrease the socket count on a disconnect, emit
socketCount--
ws.emit('users connected', socketCount)
});
});
这是我的客户方:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://127.0.0.1:3000/socket.io/socket.io.js"></script>
<script>
$(document).ready(function(){
// Connect to our node/websockets server
var socket = io.connect('http://localhost:3000');
// New socket connected, display new count on page
socket.on('users connected', function(data){
$('#usersConnected').html('Users connected: ' + data)
})
})
</script>
<div id="usersConnected"></div>
我的用户计数器工作正常,现场显示结果但我的sql数据有问题。
如果有人帮助我,我会非常感激。
答案 0 :(得分:2)
答案是mysql上的复制日志或bin-logs。看一下这个回购:https://github.com/numtel/mysql-live-select
答案 1 :(得分:1)
这是一个不完整的答案,但至少可以让你开始解决这个问题 -
答案 2 :(得分:-1)
我正在使用firebase获取实时事件以更改数据库中的值。 对于视图透视,我已经使用Bootstrap的DataTable连接了firebase。 你可以在这里检查它的小用途。 Firebase是最好的解决方案之一。 https://www.firebase.com/docs/web/libraries/angular/guide/synchronized-arrays.html