sequelizejs之实例化

本文介绍了sequelizejs的实例化过程,包括基本语法、常用参数如database、username、password等,并强调了读写分离的例子。在读写分离配置中,Sequelize允许设置read和write属性,但不负责数据同步,由数据库本身实现。示例展示了如何配置实例以实现读写分离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sequelizejs之实例化

参考资料:sequelize实例化参数读写分离模式

语法

const sequelize = new sequelize(${database},${username},${password},${options})

参数

  • database:数据库名称
  • username:数据库帐号
  • password:数据库密码
  • optios.logging:(defalut:console.log()):每次Sequelize会记录某些内容时执行的函数
  • optios.timezone:(defalut:'00+00'):将日期从数据库转换为JavaScript日期时使用的时区
  • optios.benchmark:(defalut:false):将查询执行时间(以毫秒为单位)作为日志记录功能的第二个参数(options.logging)
  • optios.replication(defalut:false):设置读写分离,具有read,write两个属性
  • optios.define:模型定义的默认选项。有关选项,请参阅sequelize.define
  • optios.pool:连接池属性
  • optios.pool.max(defalut:5):最大连接数
  • optios.pool.min(defalut:0):最小连接数
  • optios.transactionType(defalut:DEFERRED):设置默认事务类型。请参阅Sequelize.Transaction.TYPES可能的选项。仅限Sqlite
  • optios.isolationLevel:设置事物隔离级别

本文只列出常使用的一些参数,更多参数请参考最新文档:http://docs.sequelizejs.com/class/lib/sequelize.js~Sequelize.html

例子

const sequelize = new Sequelize('test', 'root', '123456', {
    host: 'localhost',
    port: 3306,
    dialect: 'mysql',
    operatorsAliases: false,
    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    },
    define: {
        underscored: false,
        freezeTableName: true,
        charset: 'utf8',
        dialectOptions: {
            collate: 'utf8_general_ci'
        },
        timestamps: true
    },
    timezone: '+08:00',
    logging: false,
});

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

读写分离例子

var sequelize = new Sequelize('database', null, null, {
  dialect: 'mysql',
  port: 3306
  replication: {
    read: [
      { host: '192.168.1.33', username: 'itbilu.com', password: 'pwd' },
      { host: 'localhost', username: 'root', password: null }
    ],
    write: { host: 'localhost', username: 'root', password: null }
  }
})

注意

  • 所有的整体性设置,都会适用于所有节点副本,所以并不需要为每个实例单独指定。在上例中,数据库名和端口号会应用于所有节点副本,用户名和密码选项也同样适用。如果某一节点副本不使用全局设置,则需要在replication选项中单独指定。
  • Sequelize 并不会设置主从复制节点及节点间的数据同步(复制),这些操作实际由MySQL(或你所使用的数据库)完成。而 Sequelize 只负责从主从节点写入或读取数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值