如何捕获Sequelize连接错误

时间:2016-07-29 03:46:02

标签: node.js sequelize.js

如果有连续错误,如何捕获连续错误?

我试着做

var connection = new Sequelize("db://uri");
connection.on("error", function() { /* perhaps reconnect here */ });

但显然不支持。

我想这样做,因为我认为sequelize可能会偶尔抛出未处理的ETIMEOUT并导致我的节点进程崩溃。

目前我正在使用sequelize连接mysql实例。我只需要2-3个小时,在那段时间我会做很多阅读查询。在此期间,mysql服务器将不会连接任何其他内容。

2 个答案:

答案 0 :(得分:1)

使用sync()对于使用外部迁移或数据库完整性至关重要时非常危险(当它不是!)

执行此操作的up-to-date方式越多,请使用authenticate()

sequelize
  .authenticate()
  .then(() => {
    console.log('Connection has been established successfully.');
  })
  .catch(err => {
    console.error('Unable to connect to the database:', err);
  });

答案 1 :(得分:0)

使用sequelize sync

class DataBaseClass(object):
    def Load_Data(self):
        raise NotImplementedError("Subclass must implement abstract method")

class Child1(DataBaseClass):
    def Load_Data(self):
        # implement load_data for Child1
        print('Child1')

class Child2(DataBaseClass):
    def Load_Data(self):
        # implement load_data for Child2
        print('Child2')

Child1 = Child1()
Child2 = Child2()

Child1.Load_Data()
Child2.Load_Data()