express中使用mysql ,运行长时间之后报read ECONNRESET
在每个api中使用connect和end就会导致只有第一次请求有返回,后面的请求都会报Cannot enqueue Handshake after invoking quit
exports.login = async (req, res, next) => {
try {
const username = req.body.reqdata.username;
const password = req.body.reqdata.password;
db.connect()
const sql = `select * from user where loginid='${username}' and password ='${password}'`;
//console.log(sql)
db.query(sql, (err, results, fields) => {
console.log(results);
console.log(err);
if (err) {
res.send({
err: err.message,
});
}
if (results.length > 0) {
//生成token,并且在返回数据中返回,设置了60S失效的token
const token = jwt.sign(req.body, "dsj", { expiresIn: 36000 });
res.send({
message: 0,
data: results,
token: token,
});
} else {
res.send({
message: 1,
data: results,
});
}
});
db.end()
} catch (err) {
next(err);
}
};
如果不使用connect和end,程序可以正常运行一段时间,但是时间长了之后就会导致报Error: read ECONNRESET
百度了很多都没有解决方案,复制粘贴的答案就不要了,只求解决办法,让程序能稳定运行