带Node.JS的MySQL不起作用

时间:2014-05-30 18:53:32

标签: javascript mysql node.js socket.io

好的,我发现了错误。出于某种原因,我的网络服务器出了问题。我在另一个上尝试了它并在那里设置了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
    });

});

连接时它没有记录任何内容:/

非常感谢:) 安东

1 个答案:

答案 0 :(得分:1)

因为node.js是异步的,所以在查询之前正在执行对connection.end()的调用。尝试删除该行,看看它是否有效