【发布时间】:2022-07-07 22:26:54
【问题描述】:
我正在尝试使用 sequelize 连接池选项
这是我正在尝试的documentation link
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize(null, null, null, {
dialect: 'mysql',
port: 3306,
replication: {
read: [
{ host: 'localhost', username: 'root', password: 'password', database: 'test' },
],
write: { host: 'localhost', username: 'root', password: 'password', database: 'test1' },
}
});
module.exports.sequelize = sequelize;
这里的预期行为应该是,所有读取调用都应该从“读取”选项进行,所有写入操作都应该在“写入”选项上完成,即。 从“test”数据库读取并写入“test1”
这是我正在测试的示例路线,
app.get('/',async function(req,res){
const [ readRes ] = await sequelize.query("select * from users");
const writeRes = await sequelize.query("insert into users(name,status) values('user11',1)");
const [readRes1 ] = await sequelize.query("select * from users");
res.send([
{ response1 : readRes }
]);
});
在上面的示例中,readRes 和 readRes1 的输出始终来自“test1”数据库,即写入数据库。
事实上,写操作按预期工作,但读操作总是从“write”数据库而不是“readdb”读取
如果我将 test1 数据库换成读取数据库并将测试数据库换成写入数据库,那么所有读取操作也会发生在读取数据库上。
知道我错过了什么吗?
【问题讨论】:
标签: mysql node.js database sequelize.js