栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

启动应用程序时验证与pg-promise的数据库连接

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

启动应用程序时验证与pg-promise的数据库连接

我是pg-promise的作者;)这不是第一次问这个问题,因此我在这里给它一个详细的解释。

当您像这样实例化一个新的数据库对象时:

const db = pgp(connection);

…所有操作-创建对象,但不尝试连接。该库建立在连接池的顶部,并且只有实际的查询方法才请求连接池的连接。

从官方文档中:

对象

db
表示数据库协议,具有惰性数据库连接,即只有实际的查询方法才能获取并释放该连接。因此,
db
每个连接详细信息仅应创建一个全局/共享对象。

但是,可以通过调用方法connect来强制建立连接,如进一步所示。尽管不建议使用此方法来链接查询(应该使用Tasks),但通常可以方便地检查连接。

我从自己的帖子中复制了该示例:https :
//github.com/vitaly-t/pg-promise/issues/81

下面是同时使用两种方法进行操作的示例,因此您可以选择更喜欢的一种方法。

const initOptions = {    // global event notification;    error(error, e) {        if (e.cn) { // A connection-related error; // // Connections are reported back with the password hashed, // for safe errors logging, without exposing passwords. console.log('CN:', e.cn); console.log('EVENT:', error.message || error);        }    }};const pgp = require('pg-promise')(initOptions);// using an invalid connection string:const db = pgp('postgresql://userName:password@host:port/database');db.connect()    .then(obj => {        // Can check the server version here (pg-promise v10.1.0+):        const serverVersion = obj.client.serverVersion;        obj.done(); // success, release the connection;    })    .catch(error => {        console.log('ERROR:', error.message || error);});

输出:

CN: postgresql://userName:########@host:port/database EVENT: getaddrinfoENOTFOUND host host:5432 ERROR: getaddrinfo ENOTFOUND host host:5432

首先通过全局错误事件处理程序报告库中的每个错误,然后才在相应的

.catch
处理程序中报告错误。

#替代

无需手动建立连接,您只需执行一种对于有效连接始终成功的查询类型,如下所示:

db.func('version')    .then(data => {        // SUCCESS        // data.version =        // 'PostgreSQL 9.5.1, compiled by Visual C++ build 1800, 64-bit'    })    .catch(error => {        // connection-related error    });

但是,该示例

connect
具有优点,例如不需要执行任何查询,并且它以简单的形式提供了服务器版本。

API链接:

  • 方法功能
  • 方法连接
  • 事件错误


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413285.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号