我试图在nodejs中编写一个简单的AWS Lamda函数来从AWS RDS mySQL数据库读取和返回数据,但代码始终只返回:
Response:null
当它应该返回值“Bbbb”时,这是我的数据库中 emp_id = 2 的名称。 任何帮助将非常感激!
下面是我的 Lamda 代码:
var mysql = require('mysql');
var config = require(./config.json)
var pool = mysql.createPool({
host: config.dbhost,
user: config.dbuser,
password: config.dbpassword,
database: config.dbname,
port: 3306
});
exports.handler = async (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
pool.getConnection(function(err, connection) {
connection.query('SELECT emp_name FROM employee_info WHERE emp_id = 2', function(error, results, fields) {
if (err) callback(error);
callback(null,results[0].emp_name);
connection.release();
});
});
};
使用 mysql.createPool 和 getConnection 在 Lambda 函数内创建同步连接。 你可以做这样的事情:
// Connect to the database using the connection pool
const connection = await pool.getConnection();
// Perform your database query
const [rows] = await connection.execute('SELECT emp_name FROM employee_info WHERE emp_id = 2');
// Return the result
return {
statusCode: 200,
body: JSON.stringify({ emp_name: rows[0].emp_name }),
};
} catch (error) {
console.error('Database error:', error);
return {
statusCode: 500,
body: JSON.stringify({ message: 'Database error' }),
};
} finally {
// Release the connection and close the pool
if (connection) connection.release();
if (pool) pool.end();
}