【发布时间】:2019-02-13 21:52:42
【问题描述】:
我在 Node 6.10 中有一个代码,它正在工作... 但如果我将它转换为 Node 8.10,它就不起作用了
var mysql = require("mysql");
var connection = mysql.createConnection({
host: " localhost",
user: "root",
password: "",
database: "parser_db"
});
exports.handler = async event => {
connection.connect();
let response = {
statusCode: 400,
body: { Method: "Invalid", event }
};
var readTable = "SELECT * FROM documents where id = " + mysql.escape(1);
connection.query(readTable, function(err, results, fields) {
if (err) throw err;
else {
response = {
statusCode: 200,
body: { results }
//body: { results }
};
console.log(response);
return response;
}
});
};
请有人帮我发现问题。如果我在单独的文件中执行 MySQL 查询并返回结果集,它也不起作用。
注意:如果我使用 console.log(response) 打印结果而不是返回它 显示正确的结果。
【问题讨论】:
-
除了“它不工作”之外,您对问题的了解更多吗?这并没有给任何人太多的继续。
-
我的意思是它没有返回任何结果......代码执行很好......我在注释中提到过@BobRodes
-
让我改变它。你把
console.log放在哪里?就在return response线旁边? -
请立即检查代码...在控制台中打印响应但不返回任何内容...@BobRodes
-
问题是您正在从 connection.query() 回调函数中返回响应。这使得 response 成为回调函数的返回值,而不是外部 Lambda 函数的 exports.handler() 的返回值。
标签: mysql node.js amazon-web-services aws-lambda