簡體   English   中英

雖然我能夠連接和插入,但無法從Lambda更新MySQL(AWS RDS)表

[英]Unable to Update MySQL (AWS RDS) table from Lambda though i am able to connect and INSERT

下面是我的lambda函數。 來自APIAPI Gateway )的請求。 即使當我嘗試將值直接傳遞給update table時 ,它也不會更新。 我能夠INSERT通過數據到相同的表API 只是想知道這里出了什么問題。

感謝任何幫助。 提前致謝。


var mysql = require('mysql');
var config = require('./config.json');
var sql,response;

exports.handler = function(event, context) {
    var connection = mysql.createConnection({
      host     : config.dbhost,
      user     : config.dbuser,
      password : config.dbpassword,
      database : config.dbname
    });

exports.handler = function(event, context,callback) {
   //prevent timeout from waiting event loop
  context.callbackWaitsForEmptyEventLoop = false;

   var variable1= event.variable1;
   var variable2= event.variable2;
   var id= event.id;

    connection.query('UPDATE LocationData SET latitude = ?,longitude =? WHERE userId = ?', [variable1, variable2,id], function(error, results, fields) {
        response = {};
        response['id'] = results.id;
        response['variable1'] = results.variable1;
        response['variable2'] = results.variable2;
        context.succeed(response);
    });

};
};

您缺少對connect函數的調用。 一個有效的示例如下所示:

var mysql = require('mysql');
var config = require('./config.json');

exports.handler = function(event, context) {
  var connection = mysql.createConnection({
    host     : config.dbhost,
    user     : config.dbuser,
    password : config.dbpassword,
    database : config.dbname
  });
  connection.connect(); // <--- MISSING THIS!

  exports.handler = function(event, context,callback) {
    context.callbackWaitsForEmptyEventLoop = false;

    var variable1 = event.variable1;
    var variable2 = event.variable2;
    var id = event.id;

    var sql = 'UPDATE LocationData SET variable1=?,variable2=? WHERE userId=?';
    connection.query(sql, [variable1, variable2, id], function(error, results, fields) {
      context.succeed({
        id: results.id,
        variable1: results.variable1,
        variable2: results.variable2
      });
    });
  };
};

同樣,作為一般建議,萬一出問題了,您應該始終在回調中檢查error變量,並對其做出相應的反應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM