每当我测试以下代码时: 我将在第一个日志上获得成功。 随后的日志都显示错误。
Array.forEach(element => {
let al = element.selectedData.airline.filter(
(v, i, a) => a.indexOf(v) === i
);
console.log(al, " in the loop");
});
这是我运行的代码。
{
"errorType": "Error",
"errorMessage": "Cannot enqueue Handshake after already enqueuing a Handshake.",
"trace": [
"Error: Cannot enqueue Handshake after already enqueuing a Handshake.",
" at Protocol._validateEnqueue (/var/task/node_modules/mysql/lib/protocol/Protocol.js:221:16)",
" at Protocol._enqueue (/var/task/node_modules/mysql/lib/protocol/Protocol.js:138:13)",
" at Protocol.handshake (/var/task/node_modules/mysql/lib/protocol/Protocol.js:51:23)",
" at Connection.connect (/var/task/node_modules/mysql/lib/Connection.js:119:18)",
" at data (/var/task/index.js:13:18)",
" at new Promise (<anonymous>)",
" at Runtime.exports.handler (/var/task/index.js:12:24)",
" at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]
}
答案 0 :(得分:0)
如here所述,您正在将连接对象存储在执行上下文之外:
在函数的处理程序方法外部声明的对象保留 已初始化...
这意味着在随后的Lambda函数调用中,如果尚未由于不活动而破坏该函数(或由于并发调用而使新函数被旋转),则您将重用已经具有主动连接到您的MySQL服务器。在已经建立的数据库连接上调用connect()
似乎是导致您看到的错误。
我建议删除对connection.connect()
的显式调用,并允许mysql库隐式建立连接(如果尚不存在),如{的“建立连接” 部分中所述{3}}。