Node.js Mysql连接已终止

时间:2014-03-04 07:24:20

标签: javascript mysql node.js express

我正在尝试将一个基本表单插入到我的数据库中以了解节点是如何工作的,但我一直收到一个有趣的小错误返回..

error when connecting to db: { [Error: Connection lost: The server closed the connection.] fatal: true, code: 'PROTOCOL_CONNECTION_LOST' }

我有一个断开连接的包装器,但这似乎也没有帮助。

SELECT * FROM player也会在mysql中返回任何内容,因此不会插入任何内容。

这是我的server.js文件:(我当然省略了连接凭证)

var connection;

function handleDisconnect() {
    connection = mysql.createConnection(db_config); 
    connection.connect(function(err) {              
        if(err) {                     
            console.log('error when connecting to db:', err);
            setTimeout(handleDisconnect, 2000); 
        }                                
    });                             
    connection.on('error', function(err) {
        console.log('db error', err);
        if(err.code === 'PROTOCOL_CONNECTION_LOST') { 
            handleDisconnect();              
        } else {              
            throw err;      
        }
    });
}

handleDisconnect();

app.use(express.static(__dirname));
app.use(express.json());
app.use(express.urlencoded());

app.post("/post",function(req,res) {
    console.log(JSON.stringify(req.body));
    res.send("Username is: "+req.body.user+".");
    var post  = {
        name:req.body.user,
        password:"testing",
        email:"fake@email.com"
    };
    connection.query("INSERT INTO player VALUES ?",post,function(err,result) {
        console.log(err);
        console.log(result);
    });

});
app.listen(80, function() {
        console.log("Server running on port 80");
});

为什么我的连接被切断了?

1 个答案:

答案 0 :(得分:0)

添加

con.connect();
app.listen(80...解决问题之前