我正在查询我的MySQL数据库的第5个请求上收到 SequelizeConnectionError:Bad handshake 错误。我对服务器做的第5次请求始终失败。
我正在使用nodejs。处理post请求的代码如下:
routes.post('/login', (req, res) => {
var email = req.body.email,
password = req.body.password;
models.User.findOne({ where: {email : email} }).then(function(user) {
if(user){
user.validPassword(password).then(result => {
if(result){
res.json({ "result": "Password correct"});
} else {
res.json({ "result": "Password incorrect"});
}
});
} else {
res.json({ "result": "User not found."});
}
});
});
user.validPassword如下:
User.prototype.validPassword = function(password){
var self = this;
return new Promise(function(resolve, reject){
cryptPassword(password, function(err, encrypted) {
resolve(self.password === encrypted);
});
});
}
我的Sequelize的配置如下:
var sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
dialect: config.dialect,
pool: {
max: 100,
min: 0,
idle: 10000,
handleDisconnects: true
}
});
我尝试删除池,增加数量,检查MySQL没有连接限制,确保不需要证书并重新安装我的MySQL服务器。
MySQL服务器运行在Ubuntu 14.04 VPS上,而不是Azure托管,因为之前的一些问题都是基于。
答案 0 :(得分:0)
这是mysql2包的一个问题。我不得不删除它并使用mysql包代替。
希望如果他们遇到同样的错误,这可以帮助其他人。