好的,我发现了错误。出于某种原因,我的网络服务器出了问题。我在另一个上尝试了它并在那里设置了mysql数据库。 :)
我正在使用socket.io在Node.js服务器上工作,并希望集成一些mysql连接。我安装了mysql模块很多次,它仍然无法正常工作。我不知道为什么。 这是我的代码:
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
mysql = require('mysql'),
users = {};
server.listen(3000);
app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});
var connection = mysql.createConnection({
host : 'host',
user : 'user',
password : 'secret',
database : 'db'
});
io.sockets.on('connection', function (socket) {
socket.on('login', function (data, callback) {
console.log(data);
connection.connect(function(err){
console.log(err);
console.log('test');
});
var query = connection.query('SELECT * FROM users', function(err, result, fields) {
if (err) throw err;
console.log('result: ', result);
});
//Add user to array
connection.end();
});
socket.on('disconnect', function(data){
//remove user from array
});
});
连接时它没有记录任何内容:/
非常感谢:) 安东
答案 0 :(得分:1)
因为node.js是异步的,所以在查询之前正在执行对connection.end()
的调用。尝试删除该行,看看它是否有效