vis*_*tur 22 mysql node.js sequelize.js
我有一个非常简单的程序,我在其中创建一个Sequelize实例,然后我在mysql数据库上执行原始查询.这种情况是,当MySql启动并运行时没有问题,我可以毫无问题地执行查询.但是当MySql没有运行时,查询在查询超时达到之前不会发出任何错误,然后它会导致ETIMEOUT错误.但那并不是真正发生的事情.我希望查询发出ENOTFOUND错误或类似的东西,如果mysql没有运行,所以我可以管理错误并执行不同的操作,如果Mysql已关闭或Mysql非常繁忙,并具有非常大的响应时间.我应该怎么做才能检查Mysql是否已启动并运行而无需等待超时异常.
sequelize = new Sequelize(db_name, db_user, db_pass, opts);
sequelize.query('SELECT * FROM some_table').success(function(result) {
console.log(result);
}).error(function(err) {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
Yan*_*oto 34
截至最新版Sequelize(ie 3.3.2
),authenticate
可用于检查连接:
var sequelize = new Sequelize("db", "user", "pass");
sequelize.authenticate().then(function(errors) { console.log(errors) });
Run Code Online (Sandbox Code Playgroud)
authenticate
只需运行SELECT 1+1 AS result
查询来检查数据库连接.
更新:
最新API的错误需要在以下方面处理catch
:
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
Run Code Online (Sandbox Code Playgroud)
您不会在中看到错误,例如密码验证错误.then
。
从这里的续集文档:
您可以像这样使用.authenticate()函数来测试连接。
sequelize
.authenticate()
.then(function(err) {
console.log('Connection has been established successfully.');
})
.catch(function (err) {
console.log('Unable to connect to the database:', err);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20526 次 |
最近记录: |