如何将字符集添加到 Knex.js 连接字符串?

Posted

技术标签:

【中文标题】如何将字符集添加到 Knex.js 连接字符串?【英文标题】:How do I add charset to Knex.js connection string? 【发布时间】:2016-11-29 14:06:10 【问题描述】:

我正在使用 Knex.js 进行数据库连接。我想使用连接字符串而不是连接对象来连接数据库,并且能够指定charset

例子:

connection: 'mysql://root:secret@127.0.0.1:3306/test-db'

不是

connection: 
    host     : '127.0.0.1',
    user     : 'root',
    password : 'secret',
    database : 'test-db',
    charset  : 'utf8'

我的连接字符串正常工作。

有人可以解释我如何在 Knex.js 连接字符串中指定 charset 吗?

【问题讨论】:

Gadzooks!,又一个第 3 方包!如果想不通,连接后立即执行SET NAMES utf8;这通常是一个有效的后备。 knex 文档说它将连接字符串直接传递给底层驱动程序:knexjs.org/#Installation-client。如果是这样,底层驱动程序可能不会显示预期的行为:github.com/mysqljs/mysql#establishing-connections。我只是猜测,但可能值得一试。 谢谢,这很有帮助。文档显示了下面看起来很有希望的连接字符串:connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'); 【参考方案1】:

试试:

connection: 'mysql://root:secret@127.0.0.1:3306/test-db?charset=utf8mb4'

请参阅此处所述的连接字符串选项:https://github.com/mysqljs/mysql#connection-options

【讨论】:

以上是关于如何将字符集添加到 Knex.js 连接字符串?的主要内容,如果未能解决你的问题,请参考以下文章

使用 objection.js 或 knex.js 在 postgres 中的字符串列的 json 数组中查询

如何在 knex.js 迁移中链接承诺

在 pyspark 中,如何将字符串添加/连接到列?

如何在 knex.js 模式的增量列中添加一个字母?

Azure 函数 - 到本地数据库的连接字符串

在 Node 应用程序中使用 AND 使用 Knex.js 构造内部连接