Javascript 我的node.js代码有时有效,有时无效
我用NodeJS和telegraf开发了一个电报机器人。 当组成员在组中添加成员时,将执行此代码Javascript 我的node.js代码有时有效,有时无效,javascript,node.js,synchronization,telegram-bot,telegraf,Javascript,Node.js,Synchronization,Telegram Bot,Telegraf,我用NodeJS和telegraf开发了一个电报机器人。 当组成员在组中添加成员时,将执行此代码 bot.on('new_chat_members', (ctx) => { if(ctx.message.new_chat_members[0]['is_bot'] == false){ Add.insertForcedAddUsersList(ctx.message.chat.id, ctx.message.from.id, ctx.message.from.firs
bot.on('new_chat_members', (ctx) => {
if(ctx.message.new_chat_members[0]['is_bot'] == false){
Add.insertForcedAddUsersList(ctx.message.chat.id, ctx.message.from.id, ctx.message.from.first_name, ctx.message.from.last_name, ctx.message.new_chat_members[0]['id']);
}
});
然后这个函数工作:
var insertForcedAddUsersList = (chatId, userId, firstName, lastName, addedUserId) => {
var sql = "SELECT * FROM forced_add_users_list WHERE chat_id="+chatId+" AND user_id="+userId;
Model.pool.query(sql, function (err, result) {
if (err)
console.log(err);
else {
if(result[0]){
var addedUsersIdArray = result[0]['added_users_id'].split('|');
var repetitiveUserFlag = false;
for(var i=0;i<addedUsersIdArray.length;i++){
if(addedUsersIdArray[i] == addedUserId){
repetitiveUserFlag = true;
break;
}
}
if(repetitiveUserFlag == false){
sql = "UPDATE forced_add_users_list SET first_name="+"'"+firstName+"',last_name='"+lastName+"',added_number='"+(parseInt(result[0]['added_number'],10)+1)+"',added_users_id='"+result[0]['added_users_id']+"|"+addedUserId+"' WHERE chat_id="+chatId+" AND user_id="+userId;
Model.pool.query(sql, function (err, result2) {
if(err)
console.log(err);
else
canSendMessage(chatId, userId, firstName, lastName, parseInt(result[0]['added_number'],10)+1);
});
}
}else{
sql = "INSERT INTO forced_add_users_list(chat_id, user_id, first_name, last_name, added_number, added_users_id) VALUES(" + chatId + ",'" + userId + "','" + firstName + "','" + lastName + "','1','" + addedUserId + "')";
Model.pool.query(sql, function (err, result2) {
if(err)
console.log(err);
else
canSendMessage(chatId, userId, firstName, lastName, 1);
});
}
}
});
};
问题是当我同时向组中添加3个或更多成员时,有时第一个和最后一个成员添加到数据库中,有时所有成员都添加到数据库中。 有时INSERT SQL命令也会工作两次,而不是一次。
有什么问题吗。我是node js的新手。三个成员中的哪一个被添加。。。你怎么加这三个成员?第一个和最后一个。我通过电报增加了他们的成员特征。有时还插入执行两次,三个成员中的哪一个被添加。。。你怎么加这三个成员?第一个和最后一个。我通过电报增加了他们的成员特征。有时还插入并执行两次