Mysql 不一致消息事件中的SQL查询连接
我有一个存储特定通道id的数据库,我想确保没有人在该特定通道中发送消息。我当前的sql池代码:Mysql 不一致消息事件中的SQL查询连接,mysql,node.js,discord.js,Mysql,Node.js,Discord.js,我有一个存储特定通道id的数据库,我想确保没有人在该特定通道中发送消息。我当前的sql池代码: const mysql = require('mysql'); const pool = mysql.createPool({ host : "localhost", port : 3306, user : "root", password: "xxx", database: 'db' }); let sql = {}; s
const mysql = require('mysql');
const pool = mysql.createPool({
host : "localhost",
port : 3306,
user : "root",
password: "xxx",
database: 'db'
});
let sql = {};
sql.query = function(query, params, callback) {
pool.getConnection(function(err, connection) {
if(err) {
if (callback) callback(err, null, null);
return;
}
connection.query(query, params, function(error, results, fields) {
connection.release();
if(error) {
if (callback) callback(error, null, null);
return;
}
if (callback) callback(false, results, fields);
});
});
};
我目前阻止用户发送消息的方法是:
client.on("message", async message => {
sql.query(`SELECT * FROM db_1 WHERE channelid = ${message.channel.id}`, (err, res) => {
if(message.channel.id == res[0].channelid) return message.delete();
})
})
我想知道这是否是一个好主意,因为我没有考虑到每秒可能会发送数千条消息,这意味着我将每秒数千次查询我的数据库
有更好的方法吗?
提前谢谢
注意:这类似于大多数验证码机器人,它有一个特定的等候室通道,新成员需要输入如下命令!验证以接收验证消息。老实说,这对Discord的API来说是非常密集的,因为它必须每次删除消息。-从过去的经验来看,这有点奇怪,因为目前大多数的服务器验证码机器人都做得很差。是的,著名的服务器验证码机器人在任何意义上都不做:)啊!这很有趣,我想我记得当时是这样做的。谢谢。不用担心,尽管有一点提示,因为我在过去制作了一个验证码机器人来避免消息删除,所以更多地关注机器人本身是否可以通过这种方式对用户进行数据挖掘的功能。按照服务器验证码机器人的思路,它更可靠:)快乐编码。