1

私はチュートリアルに従っていますが、最初にこのエラーが発生しました:

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');
};
4

1 に答える 1

0

これが特定のメッセージの原因であるかどうかはわかりませんが、実行する前にClientReady電話をかけています。からのコールバックでそれを行う必要があります。GetDataINSERTINSERT

更新:誰かが親切にすべてを適切にインデントしたので(ヒント:インデントする必要があるものは4つのスペースで始める必要があります) 、コールバックが実行される前にGetData()呼び出している場合にも同様の問題があることが明らかになりますclient.end()。したがって、SELECTコールバックは閉じたMySQL接続を使用しようとしていますが、これがおそらく失敗の原因です。

于 2012-06-17T12:20:30.763 に答える