如何在使用连接字符串时设置Knex连接SSL选项

4

当我使用连接字符串初始化knex时,如何将连接的ssl属性设置为true?同样地,如何将debug设置为true?通常我会传递一个连接对象,但在这种情况下,我必须使用来自环境变量的连接字符串。

var database = {
    client: 'pg',
    connection: connstr //normally I would pass in the object below
    //connection: {
    //    "host": config.get('database_host'),
    //    "user": config.get('database_user'),
    //    "password": config.get('database_password'),
    //    "database": config.get('database_name'),
    //    "debug": config.get('database_debug'),
    //    "ssl":config.get('database_ssl')
    //}
};

var knex = require('knex')(database);
knex.connection.ssl = true;  // this doesn't seem to do anything

连接: { 连接字符串: process.env.DATABASE_URL, ssl:true, } - Dave Sottimano
我的SSL密钥有一个密码短语,我应该在哪里输入密码短语? - Karma Blackshaw
2个回答

12

只需在连接字符串的末尾(数据库名称的末尾)添加?ssl=true即可。如需调试,请在设置ssl后附加?debug=true,或者附加&debug=true。抱歉我不确定是哪一个,请两个都尝试一下。


1
对我来说,"?ssl=true" 是解决方案。 - eabates
在knexfile的connection块中,也可以使用ssl: true - AlienWebguy
我的SSL密钥有一个密码短语,我应该在哪里输入密码短语? - Karma Blackshaw
?ssl=1 也可以使用,这在某些情况下是可取的(更短/更简单地观察URL)。 - Ilya Semenov

7

这是一个很好的回答。 - mojoblanco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接