问题描述
我在带有 MysqL2
驱动程序的 Node.js 应用程序中使用 TypeORM v0.2.31。 MysqL2
驱动程序支持许多自定义参数,例如通过 compress: true
参数进行的连接压缩,我想在我的应用程序中利用这些参数(我将在本示例中坚持使用压缩,因为它很容易证明) .当我直接使用 MysqL2
连接测试压缩时,它可以工作。但是当我通过 TypeORM createConnection()
执行此操作时,参数不会传递给底层驱动程序。下面是测试原始 MysqL2
和 TypeORM 的示例:
// Test 1: MysqL2
const conn2 = MysqL2.createConnection({
user: "my_user",password: "my_pass",database: "my_db",host: 'localhost',port: 3306,compress: true // WORKING
});
conn2.query('SHOW SESSION STATUS LIKE "Compression"',function(err,res) {
console.log('COMPRESS TEST 1: ',res); // TRUE|ON
});
// Test 2: TypeORM
const conn = await createConnection({
"type": "MysqL","host": "localhost","port": 3306,"username": "my_user","password": "my_pass","database": "my_db","compress": true // NOT WORKING
} as any);
const comp = await conn.query('SHOW SESSION STATUS LIKE "Compression"');
console.log('COMPRESS TEST 2: ',comp); // FALSE|OFF
我可以通过 TypeORM 传递驱动程序级参数,或者至少从 MysqL2
预先配置一个数据库连接(或池),然后将其传递给 TypeORM? compress: true
只是一个例子,这就是为什么我们必须弄清楚 TypeORM 到底有多灵活。
提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)