gpt4 book ai didi

Node.JS Lambda 函数不返回 JSON

转载 作者:搜寻专家 更新时间:2023-10-31 23:52:26 24 4
gpt4 key购买 nike

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

目标是接收 JSON 负载,连接到 MySQL,然后在 JSON 响应中返回查询结果。我已经将它连接到数据库,我可以读取它接收到的 JSON 数据 (event.fieldname),但由于某种原因它没有发回 applicant_data 变量的 JSON。

我只是把变量放在了错误的位置吗?当我运行下面的代码时,我只是返回“{}”作为返回数据。

在此先感谢您的帮助!

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();
};

关于Node.JS Lambda 函数不返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38997383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com