对象不是与nodejs一起使用的mysql db中的函数

时间:2012-06-17 08:28:49

标签: mysql node.js

我正在关注tutorial,但首先我收到了这个错误:

deprecated: connect() is now done automatically

我更改了我的代码,但在此之后即将面临此错误:

object is not a function at Client.CALL_NON_FUNCTION_AS_CONSTRUCTOR (native)

我不知道因为我是nodejs和mysql的新手,所以请帮助我!!

这是我的代码:

var Client = require('mysql').createClient({'host':'localhost','port':'3306','user':'root', 'password':''});
var client = new Client();

console.log('Connecting to mysql..');
ClientConnectionReady(client);

 ClientConnectionReady = function(client){
     client.query('USE login',function(err,result){
     if(err){
          console.log('cant create Table Error:'+ err.message);
      client.end();
      return;
 }
 ClientReady(client);
};

ClientReady = function(client){
    var values = ['fahad','tariq'];
    client.query('INSERT into Login SET username = ?, password = ?',values,
    function(err,result){
        if(err){
            console.log("ClientReady Error:" + error.message);
            client.end();
            return;
        }
        console.log('inserted:'+result.affectedRows+'ros.');
        console.log('Id inserted:'+ result.insertId);
    });
    GetData(client);
}

GetData = function(client){
    client.query(
        'SELECT * FROM Login',
            function selectCb(err,result,fields){
                if(err) {
                    console.log('Getdata Error'+err.message);
                    client.end();
                    return;
                }
                if(result.length>0) {
                    var firstResult = results[0];
                    console.log('username' + firstResult['username']);
                    console.log('password'+firstResult['password']);
                }
            });
    client.end();
    console.log('connection closed');
};

1 个答案:

答案 0 :(得分:0)

不确定这是导致您的具体消息的原因,但在ClientReadyGetData有机会执行之前,您正在调用INSERT;你应该在{em>里面来自INSERT

的回调

更新:现在有人能够正确地缩进所有内容(提示:应该缩进的东西应该开始有4个空格),很明显你在{{1}中遇到了类似的问题}:你在回调有机会执行之前调用GetData()。因此,您的client.end()回调试图使用封闭的MySQL连接,这可能导致失败。