最近在学Cocos,用Node写两个接口,将游戏的最高分保存在Mysql里,但是我第一天调用的时候有用,第二天调用的时候,就没用了。 我登录上宝塔一看,原来是项目关了,我以为是内存不够,自己关了。但第三天,又调用不了了,然后我再登录宝塔,还是项目关了。我就觉得奇怪了,项目怎么会自动关掉,一看项目日志,原来是Mysql连接超时。
解决方法: 导入mysql2这个包,使用连接池
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'xxx.xxx.xxx.xxx',
user: 'cocos',
password: 'xxx',
database: 'cocos',
multipleStatements: true
})
//调用的时候就创建连接
app.get('/api/getScore', (req, res) => {
pool.getConnection(function (err, connection) {
if (err) throw err;
const name = req.query.name;
const sqlStr = "SELECT * FROM score where name = ?";
connection.query(sqlStr, name, (error, results) => {
if (error) return res.json({ code: 10001, message: error})
res.json({ code: 10000, message: results})
})
connection.release();
});
})