你能弄清楚为什么我的代码以前可以工作但不能工作吗?
Could you figure out why my code isn't working when it was working previously?
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"
}
问题发生在 AWS Lambda 上,运行时中的代码(以上)使用 Node.js。
当我的测试事件是我已经在 mysql table 中作为条目的东西时,它将提供回调 Already Registered 并且当我的测试事件是 [=17= 中没有的新东西时] table,我仍然得到回调 Already Registered 而不是它应该移动到 else 语句并执行它以获得回调成功注册。以前这是正确的,我没有修改代码,因为它正在工作,当我昨晚检查它时,我注意到了这个错误。
还要检查 results
的长度
if (results && results.length !== 0) {
// ...
}
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"
}
问题发生在 AWS Lambda 上,运行时中的代码(以上)使用 Node.js。 当我的测试事件是我已经在 mysql table 中作为条目的东西时,它将提供回调 Already Registered 并且当我的测试事件是 [=17= 中没有的新东西时] table,我仍然得到回调 Already Registered 而不是它应该移动到 else 语句并执行它以获得回调成功注册。以前这是正确的,我没有修改代码,因为它正在工作,当我昨晚检查它时,我注意到了这个错误。
还要检查 results
的长度
if (results && results.length !== 0) {
// ...
}