NODEJS mysql 结果未定义
Posted
技术标签:
【中文标题】NODEJS mysql 结果未定义【英文标题】:NODEJS mysql result is undefined 【发布时间】:2021-02-19 04:51:00 【问题描述】:您好,我遇到了节点 mysql 的问题。
client.on('message', message =>
var con = mysql.createConnection(
host: config.host,
user: config.user,
password: config.password,
database: config.database
);
//con.connect(function (err) i was try with this
//if(err) console.log(err); i was try with this
con.query(`SELECT * FROM servers`, function (err, result)
result.forEach(row =>
if(row.guild === message.guild.id)
//some code
20/30 分钟。一切正常。 但后来我崩溃了。 我找到了一种解决方案。
client.on('message', message =>
var con = mysql.createConnection(
host: config.host,
user: config.user,
password: config.password,
database: config.database
);
con.query(`SELECT * FROM servers`, function (err, result)
if(result)
result.forEach(row =>
if(row.guild === message.guild.id)
//some code
else
console.log("no result");
但后来我只收到垃圾邮件“没有结果”,没有任何效果。 有人知道如何让它不仅能工作 20 分钟吗?
【问题讨论】:
旁注:您应该创建一个全局连接对象。不是针对您收到的每条“消息” @Marc 但是当我在顶部执行 mysql.createConnection 时,添加 con.end(); forEach 不想工作。 不要关闭连接。让它们保持开放并重复使用。仅在退出程序时关闭它 然后我的连接超时了。 超时是什么意思?!您可以重用现有的 mysql 连接来执行多个查询。查询服务器前,请等待连接成功。 【参考方案1】:MySQL 连接超时。我没想到会在 30 分钟内完成,但在我看来,这就是问题所在。而是使用池连接。将它放在client.on('message', message => );
之外也更好,然后从内部引用它。示例:
const mysql = require('mysql');
var db_config =
host: 'localhost',
user: 'root',
password: '',
database: 'mybots-db'
;
var con = mysql.createPool(db_config);
con.getConnection(function (err, con)
if (err)
connection.release();
console.log(' Error getting mysql_pool connection: ' + err);
throw err;
console.log('Connected to Database');
);
client.on('message', message =>
//Your code here
);
附带说明,如果您想检查是否有结果,可以使用if(typeof result[0] === 'undefined') return console.log("It isn't defined!");
更轻松地完成
【讨论】:
谢谢。但是当我需要使用client.on('message', message =>
中的一些数据或需要向数据库添加一些内容时。我怎样才能做到这一点?以后喜欢吗? con.query
?
@xmxf 是的,假设您想将每条消息添加到数据库中,在client.on('message', message =>
中,放入con.query("INSERT INTO tablename (id, message) VALUES (?, ?)"), [message.id, message.content]
好的,我测试过了。它的工作时间更长,但看看这个:link以上是关于NODEJS mysql 结果未定义的主要内容,如果未能解决你的问题,请参考以下文章