【发布时间】:2021-04-05 13:22:17
【问题描述】:
我正在尝试连接到节点内的 mysql 数据库,并且我想在每次添加新记录时创建一个套接字(使用 socket.io),但是我收到以下错误。
错误:连接 ECONNREFUSED 139.0.0.1:3306 在 TCPConnectWrap.afterConnect [as oncomplete] (node:net:1133:16)
我是 socket.io 的新手,因此正在尝试在线示例中的代码以了解其工作原理。
这是我的代码
const app = require('http').createServer().listen(8000);
const mysql = require('mysql');
const io = require('socket.io')(app);
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'ExampleLogin'
});
db.connect((err) => {
if(err) console.log(err);
console.log("Connected Successfully To The Database");
});
//db.connect();
console.log('Server running on port 8000');
const prev_id = 0;
io.sockets.on('connection', (socket) => {
socket.emit('greeting', 'Hello');
socket.on('check_podcast', (data) => {
const uid = data['uid'];
const query = "SELECT * FROM podcastTable WHERE id =" +uid;
connection.query(query, (err, rows, fields) => {
if (err) throw err;
if(rows[0].id > prev_id) {
socket.emit('new_podcast', rows[0]);
prev_id = rows[0].id;
}
});
});
db.end();
});
当我运行我的代码时,我会在终端中得到以下输出
【问题讨论】:
-
ECONNREFUSED - 连接被拒绝意味着在提供的地址上没有数据库服务正在侦听。检查您的数据库进程是否正在运行。
标签: mysql node.js sockets socket.io