Node.JS Lambda函数不返回JSON

我是新来的NodeJS和一般的JS(主要是一个PHP和C#人),所以我真的可以使用下面的这个函数一些帮助。

目标是接收一个JSON负载,连接到MySQL,然后在JSON响应中返回查询结果。 我已经把它连接到数据库,我可以读取它收到的JSON数据(event.fieldname),但由于某种原因,它不是发送给申请人_variables的JSON。

我只是在错误的位置有variables吗? 当我运行下面的代码时,只需返回“{}”作为返回的数据。

先谢谢您的帮助!

NodeJS代码:

exports.handler = function(event, context, callback) { console.log('Starting:'); console.log("Request received:\n", JSON.stringify(event)); var mysql = require('mysql'); var jsonconnection = mysql.createConnection({ host: 'servername', user: 'username', password: 'password', database: 'database' }); jsonconnection.connect(); console.log('Connected to MySQL:'); jsonconnection.query('SELECT applicant_id FROM customers WHERE applicant_id = \'' + event.applicant_id + '\'', function(err,res){ if(err) throw err; console.log('Row Details:', JSON.stringify(res)); var applicant_data = { applicant_id : res.applicant_id }; jsonconnection.end(); context.succeed(applicant_data); }) }; 

我不熟悉AWS,但基于http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html ,下面的代码可能工作。

 exports.handler = function (event, context, callback) { console.log('Starting:'); console.log("Request received:\n", JSON.stringify(event)); var mysql = require('mysql'); var jsonconnection = mysql.createConnection({ host: 'servername', user: 'username', password: 'password', database: 'database' }); // Move applicant_data outside of query as it will be needed at the end in callback var applicant_data = {}; jsonconnection.connect(); console.log('Connected to MySQL:'); jsonconnection.query('SELECT applicant_id FROM customers WHERE applicant_id = \'' + event.applicant_id + '\'', function (err, res) { if (err) throw err; console.log('Row Details:', JSON.stringify(res)); applicant_data = { // Only use first row of data applicant_id: res[0].applicant_id; }; }); // Move connection end out side of query jsonconnection.end(); // This should return your data, in JSON form callback(null, JSON.stringify(applicant_data)); // I assume this is the correct use for succeed context.succeed(); };