2016-07-22 21 views
1

コントローラコードthis._callback.applyは関数ではありません!ノードJS MySQLエラー

app.post('/savedata', function(req, res) { 
var cope = req.body; 
console.log("On server side"); 
console.log(cope.Client_ID); 
var queries = 
connection.query('update lv_billing.client SET Client_ID = ?, Client_Name = ?,Status = ?,Updt_Time = ?,Updt_By = ?,Updt_ID = ?,Cluster = ? where Client_ID = ?',cope.Client_ID,cope.Client_Name,cope.Status,cope.Updt_Time,cope.Updt_By,cope.Updt_ID,cope.Cluster,cope.Client_ID, function(err,res){ 
if(err) throw err; 
    console.log('Inserted!'); 
}) 
}); 

上記コードは「this._callback.apply」エラーをスローしても関数ではありません。ちょっとした文脈を設定する。配列の新しい値でテーブルを更新しようとしています。 'cope'は、更新が必要な値を保持する配列です。

答えて

0

あなたはコールバックが2番目のパラメータとされています。

connection.query('query string here', callback_function_here); 

はちょうどそうでない場合は、パラメータとして考慮されているので、のようなあなたの変数を連結します。

'update lv_billing.client SET Client_ID = ' + cope.Client_ID + ' ... ' 
0

私はあなたがそう言うか、いずれかの手がかりを与えていないので、あなたが使用しているMySQLのドライバーわからないんだけどあなたが書いたコードであなたが何かを言って、エラーを取得するとき

app.post('/savedata', function(req, res) { 
    var cope = req.body; 
    console.log("On server side"); 
    console.log(cope.Client_ID); 
    var queries = connection.query('update lv_billing.client SET Client_ID = ' + cope.Client_ID + ', Client_Name = ' + cope.Client_Name + ' ,Status = ' + cope.Status + ' ,Updt_Time = ' + cope.Updt_Time + ',Updt_By = ' + cope.Updt_By + ',Updt_ID = ' + cope.Updt_ID + ',Cluster = ' + cope.Cluster + ' where Client_ID = ' + cope.Client_ID, function(err,res){ 
    if(err) throw err; 
    console.log('Inserted!'); 
    }) 
}); 

通常関数ではありません、それはあなたがいない関数として何かを使用しようとしていることを意味しますということで、私は、コードをより次のようになりますことを前提としてい機能。

.query(sqlString, callback) 
1
var q = con.query('UPDATE table_Name SET wordstype_count = wordstype_count + ? Where user_id = ?', [data.keyCount , data.userId],function (err, result) { 
       if (err) throw err; 
       } 
      ); 

このようなあなたのパラメータを使用します。クエリの形式は、このようなものであることを

https://github.com/mysqljs/mysql#performing-queries

お知らせ:私の仮定は、あなたがこれに似たライブラリを使用していることです。これは私のためにうまくいきます。

4

@RugDealerが述べたように、コールバック関数を2番目または3番目の引数として指定する必要があります。ソースをチェックアウトの詳細については

app.post('/savedata', function(req, res) { 
     var cope = req.body; 
     console.log("On server side"); 
     console.log(cope.Client_ID); 
     var params = [cope.Client_ID, cope.Client_Name, cope.Status, cope.Updt_Time, cope.Updt_By, cope.Updt_ID, cope.Cluster, cope.Client_ID]; 
     var queries = 
     connection.query('update lv_billing.client SET Client_ID = ?,Client_Name = ?,Status = ?,Updt_Time = ?,Updt_By = ?,Updt_ID = ?,Cluster = ? where Client_ID = ?',params, function(err,res){ 
     if(err) throw err; 
     console.log('Inserted!'); 
     }); 
    }); 

https://www.npmjs.com/package/mysql

はmysqlモジュールを使用している場合は、このようにあなたの機能を変更することができます
関連する問題