【问题标题】:Module export of pg-promise object derived from promise chain从 Promise 链派生的 pg-promise 对象的模块导出
【发布时间】:2017-12-31 18:58:28
【问题描述】:

我们正在使用 HashiCorp 的 Vault 来存储数据库连接凭据,然后从中构造 pg-promise 的连接字符串。 'catch' 是由于对 Vault API 的请求回调,Vault 详细信息是从 Promise 包装器提供的。

示例 database.js 模块:

const pgp = require('pg-promise')(/* options obj */);

const getDbo = () => {
    return new Promise( (resolve, reject) => {
        vault.init().then(secrets => {
        let credentials = secrets.dbUser + ':' + secrets.dbPass
        let connStr = 'postgres://' + credentials + '<@endpoint/db>'
        let dbo = pgp(connStr, (err) => {
          reject(err)
        })
        resolve(dbo);
    })
    }
module.exports = { get: getDbo }

这是在多条路线中导入的。有了这个,我们看到了警告“警告:为同一连接创建重复的数据库对象”。有没有更好的方法来解决这个问题,所以每个连接详细信息只有一个对象?

【问题讨论】:

标签: pg-promise


【解决方案1】:

根据the API,为pg-promise 创建和初始化连接是一个完全同步的操作,因此没有必要为此使用promise。

有关初始化库,请参阅Where should I initialize pg-promise

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 2017-05-07
    • 2022-10-13
    • 2017-08-30
    • 2020-01-17
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    相关资源
    最近更新 更多