从 promise 链派生的 pg-promise 对象的模块导出

Module export of pg-promise object derived from promise chain

我们使用 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 }

这正在多条路线中导入。有了这个,我们看到了警告 "WARNING: Creating a duplicate database object for the same connection." 是否有更好的方法来解决这个问题,因此每个连接详细信息只有一个对象?

正在为 pg-promise is a completely synchronous operation, as per the API 创建和初始化连接,因此没有必要为此使用承诺。

要初始化库,请参阅

另请参阅:

  • .