const mysql = require('mysql');
const connection = mysql.createConnection({
host: process.env.host1,
user: process.env.user,
password: process.env.password,
port: process.env.port1,
connectionLimit: 10,
multipleStatements: true,
connectionLimit: 1000,
connectTimeout: 60 * 60 * 1000,
acquireTimeout: 60 * 60 * 1000,
timeout: 60 * 60 * 1000,
debug: true
});
exports.handler = (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
var post = event;
var query1= connection.query("SELECT * FROM ForexAssistant.users WHERE username=? OR email=?",[event.username,event.email],function(error, results){
if(results){
callback(null, 'Already Registered');
}
else{
var query2 = connection.query('INSERT INTO ForexAssistant.users SET ?', post, function (error, results) {
if (error) {
throw error
}
callback(null, 'Successfully Registered');
});
}
});
}
示例测试事件:
{
"username": "domi",
"password": "123456",
"email": "do@gmail.com"
}
问题是在运行Lambda的AWS Lambda上使用Node.js在运行时中带有代码。 当我的测试事件是我在mysql表中已经具有的条目时,它将提供回调已注册,而当我的测试事件是mysql表中未包含的新事件时,我仍会获得回调已注册它应该移到else语句上并执行该语句以获取成功注册的回调。以前,此操作可以正确执行,并且自从代码可以正常工作以来,我还没有对其进行任何修改。昨晚检查该错误时,我才发现该代码。
答案 0 :(得分:0)
还要检查results
的长度
if (results && results.length !== 0) {
// ...
}