【问题标题】:What does a node pg Client connect return节点 pg 客户端连接返回什么
【发布时间】:2019-04-24 01:42:39
【问题描述】:

很简单的问题,不知道能不能回答。 问题是我正在运行一些测试来验证我是否使用 mocha 连接到 postgres 数据库。我正在从我的 client.connect() 返回一个值,但是它未定义并且显然给了我错误。所以问题是 pg 节点的 client.connect 返回什么。如果您有其他我可以实施的方法来测试连接,我也很想听听。

Mocha Test connectivity to DB

这非常接近,我会使用它,但我不确定他们如何验证它是否通过,因为我希望我的测试在我不通过正确的数据时失败,但在我发送正确的数据时通过。

   connectToTable: async function (client) {
     client = client || new Client({
        user: "my_user",
        host: "postgres",
        database: "my_database",
        password: "password123",
        port: 5432,
        max: 20,
        idleTimeoutMillis: 30000,
        connectionTimeoutMillis: 2000,
    });

    let resp = await client.connect()
    await expect(JSON.stringify(resp)).to.not.contain('Error');
    done() 

这就是我正在做的事情。错误是。

 AssertionError: object tested must be an array, a map, an object, a set, 
 a string, or a weakset, but undefined given

我试过把它打印出来,但我什至不确定要打印什么,所以 JSON 字符串化就在我那里,我用不同的想法弄乱了。

所以我对不同的测试方法持开放态度。或者解释我给出的另一个堆栈溢出示例是如何工作的,以便我可以像这样设计我的测试。任何帮助表示赞赏

【问题讨论】:

  • 来自文档client.connect() => Promise<void>,如果没有连接则返回error,否则什么都没有

标签: node.js postgresql mocha.js pg


【解决方案1】:

Connect 是异步且可等待的。因此,要等待,底层函数必须返回一个承诺。所以,connect 返回一个 Promise。

【讨论】:

  • 感谢 naga 还指出了一些我也忽略的东西。但是,他们都回答了我的问题。所以我可以处理我以其他方式回来的承诺。谢谢
猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 2020-11-14
  • 2017-06-26
相关资源
最近更新 更多