【问题标题】:Create Knex instance with existing (mysql2) connection使用现有 (mysql2) 连接创建 Knex 实例
【发布时间】:2021-03-28 05:59:08
【问题描述】:

我想先创建一个到我的数据库的连接(使用 mysql2),然后再创建一个新的 Knex 实例。我在文档中找不到任何关于此的内容。这甚至可能吗?

所以,理想情况下,我想做这样的事情(简化版):

const mysql = require('mysql2');
const Knex = require('knex');

const connection = mysql.createConnection(connectionConfig);
await connection.connect();
const knex = new Knex({
    client: 'mysql2',
    connection: connection,
}):

【问题讨论】:

  • 这是什么原因?
  • @felixmosh 它与依赖注入、作用域配置(knex 和 mysql 模块是我团队项目中的两个不同模块)和我的一些首选设置有关。并不是说我不能让它工作,但这将是我的首选设置。

标签: mysql node.js knex.js node-mysql2


【解决方案1】:

无法通过外部连接初始化整个 knex,但您可以将现有连接传递给 knex,如下所示:

const mysql = require('mysql2');
const Knex = require('knex');

const connection = mysql.createConnection(connectionConfig);
await connection.connect();

const knex = Knex({
  client: 'mysql2'
});

// this is documented in knex docs
const res = await knex('table').connection(connection).where('id', 1);

【讨论】:

    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 2021-04-02
    • 2017-09-18
    • 2016-08-13
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多