【问题标题】:MySQL with Node.JS doesn't work带有 Node.JS 的 MySQL 不起作用
【发布时间】:2014-07-20 15:00:15
【问题描述】:

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

});

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

非常感谢你:) 安东

【问题讨论】:

    标签: javascript mysql node.js socket.io


    【解决方案1】:

    由于 node.js 是异步的,您对 connection.end() 的调用将在查询之前执行。尝试删除该行,看看它是否有效

    【讨论】:

    • 谢谢,但这并没有真正解决问题:/ 可能是我的密码有问题吗?但那他不会给我一个错误吗?
    • @user3207681 如果您怀疑是这种情况,connection.connect() 会接受回调 function(err) { },您可以检查是否存在连接错误
    • 我已经实现并更新了我的代码。我还记录了数据及其记录,但连接块中没有日志。甚至没有我放在那里的测试日志......
    • 我现在已经删除了我的服务器主机和数据库,只是放入 localhost 看看它是否有影响,现在它向我显示了一个错误。但是一旦我输入服务器的真实信息,它甚至不会抛出错误。 (我知道这些工作,因为我使用 PHP 使用它们)。
    猜你喜欢
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多