当前位置:  开发笔记 > 编程语言 > 正文

我应该在哪里初始化pg-promise

如何解决《我应该在哪里初始化pg-promise》经验,为你挑选了1个好方法。



1> vitaly-t..:

您只需要初始化数据库连接一次.如果要在模块之间共享,则将其放入自己的模块文件中,如下所示:

const initOptions = {
    // initialization options;
};

const pgp = require('pg-promise')(initOptions);

const cn = 'postgres://username:password@host:port/database';
const db = pgp(cn);

module.exports = {
    pgp, db
};

请参阅支持的初始化选项.

更新

如果您尝试使用相同的连接详细信息创建多个数据库对象,则库将向控制台输出警告:

WARNING: Creating a duplicate database object for the same connection. at Object. (D:\NodeJS\tests\test2.js:14:6)

这指出您的数据库使用模式很糟糕,即您应该共享数据库对象,如上所示,而不是重新创建它.从版本6.x开始,它变得至关重要,每个数据库对象都维护着自己的连接池,因此重复这些将导致连接使用不良.


此外,没有必要导出pgp- 初始化的库实例.相反,你可以这样做:

module.exports = db;

如果在某些模块中你需要使用库的根,你可以通过属性$ config访问它:

const db = require('../db'); // your db module
const pgp = db.$config.pgp; // the library's root after initialization

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有