控制器代码
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"甚至不是一个功能。设置一个小环境。我试图用数组中的新值更新我的表。 '应付'是一个包含需要更新的值的数组。
答案 0 :(得分:4)
正如@RugDealer所提到的,你应该提供回调函数作为第二个或第三个参数。如果您使用的是mysql模块,可以改变您的功能:
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
答案 1 :(得分:2)
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;
}
);
像这样使用你的参数。这对我来说很好。
答案 2 :(得分:0)
你的回调应该是你的第二个参数。
connection.query('query string here', callback_function_here);
只是连接你的变量,否则它们被视为参数:
'update lv_billing.client SET Client_ID = ' + cope.Client_ID + ' ... '
答案 3 :(得分: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!');
})
});
通常当您收到错误提示某些内容不是函数时,这意味着您尝试将某些内容用作不是函数的函数。我的假设是您正在使用类似于此的库:
https://github.com/mysqljs/mysql#performing-queries
请注意,查询格式如下:
.query(sqlString, callback)