我的剧本有点麻烦。
if (msg.indexOf('!addcom') === 0) {
if (typeof args[1,2] !== 'undefined' && args[1].trim() !== '') {
if(_.indexOf(modlist, user.username) >= 0) {
msg.split(" ");
check = connection.query('SELECT 1 FROM commands WHERE channel = "'+channel+'" AND command = "'+args[1]+'"');
args[2] = args.slice(2).join(" ");
if (check === null) {
connection.query('INSERT INTO commands (channel, command, message) VALUES ("'+channel+'","'+args[1]+'","'+args[2]+'")');
}
else if (check === 1) {
client.say(channel, "Der Befehl " +args[1]+ " existiert bereits!");
}
else {
client.say(channel, "Ein Fehler ist aufgetreten!");
}
}
else {
client.say(channel, user.username+", du bist kein Moderator und kannst diesen Befehl daher nicht ausführen!");
}
}
else {
client.say(channel, "Syntax Fehler: !addcom [!Befehl] [Nachricht]");
}
}
我想检查一下channel = "'+channel'" AND command = "'args[1]'"
是否有记录,因为它们是唯一的,但由于某些原因它无法正常工作。
由于重复输入而导致崩溃,或者只是跳转到最后一个else子句else { client.say(channel, "Ein Fehler ist aufgetreten!"); }
有谁知道我犯了哪个错误?
真诚的桐人
答案 0 :(得分:0)
MySQL查询不是同步/阻止。您需要将回调传递给query()
并在该回调中的查询之后移动逻辑。请查看mysql
自述文件中的first example。
答案 1 :(得分:0)
要检查记录是否可在收集时使用,或者只是按照以下示例
var query=connection.query("select * from table")
q
.on('error') {
...`enter code here`
}
.on('result') {
//check for null
}
};