问题标签 [node-postgres]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node-postgres - Is done() required if node-postgres .connect() returns with an error?
From the docs it sounds like err is not null if there was a problem getting a client from the pool. If that's the case, does it mean done() doesn't need to be called?
or
javascript - node-postgres 错误对象的第一个“属性”
有人知道错误查询中我的错误对象中的第一个伪属性是什么吗?当我console.log('' + error);
抓住要显示的括号内的文本时。除此之外,我不确定如何引用该属性。
node.js - 具有大量查询的 node-postgres
我刚开始使用 node-postgres 和 postgres 一起玩 node.js。我尝试做的一件事是编写一个简短的 js 来填充我的数据库,使用一个包含大约 200,000 个条目的文件。
我注意到一段时间后(不到 10 秒),我开始收到“错误:连接终止”。我不确定这是否与我使用 node-postgres 的方式有关,或者是因为我向 postgres 发送垃圾邮件。
无论如何,这是一个显示此行为的简单代码:
它在大约 18,000-20,000 次查询后失败。这是使用client.query的错误方式吗?我尝试更改默认客户端编号,但似乎没有帮助。
client.connect() 似乎也没有帮助,但那是因为我有太多的客户,所以我绝对认为客户池是要走的路。
谢谢你的帮助!
node.js - node-postgres 上的 postgres 复合类型
假设我有以下 postgreSQL 复合类型:
以及除该类型之外的存储过程:
我想使用 node-postgres 模块从 Node-js 调用这个过程。
我如何在 JS 中创建这样的类型?有没有办法将类型从 Node 传递到 Postgres 存储过程?
node.js - 节点 pg 库自动提交与显式提交
我正在使用 Node pg 连接和使用我的 Postgres 数据库。我使用节点 js 中的 Postgres 函数来插入更新或获取数据。我还使用连接池来连接到数据库。
- 当使用节点 PG 时,假设我触发了一个插入查询,我需要调用 Commit 还是自动提交。
- 另外,如果我从节点调用一些函数来对数据进行一些修改,我是否需要显式调用 commit.
- 我想知道图书馆是否允许我做一些比在每次调用时都调用 commit 更好的事情。
- 请注意,这不是关于具有中间保存点的复杂事务或任何东西,而是基本的完整提交。
postgresql - “引发异常”是将错误从 pgplsql 返回到 node-postgres 的唯一方法吗?
说,我有一个 pgplsql 函数(例如buyItem
),它返回一些东西(例如购买的项目参数)。在某些情况下,我想指出出现了问题,因此结果为空(例如,没有足够的钱购买所需的物品)。这只是一个常见的结果,我不会将其称为异常(并且绝对不会在数据库服务器上打印有关它的错误,就像raise exception
那样)。
所以问题是:处理此类案件的最佳做法是什么?
sql - 如何一起加载2个相关数据集?(即帖子和评论)
我对 pg 相当陌生,并试图找出将一组帖子及其相关评论一起加载的最佳方法。
例如:我正在尝试获取与所有这些帖子相关的 10 个帖子和评论,例如 facebooks 墙,您可以在其中看到加载在同一页面上的帖子和评论的提要。我的架构看起来像这样:
我尝试在同一个 postgres 函数上加载帖子和评论,执行以下操作:
不幸的是,它在评论存在的地方重复了 N 次帖子,其中 N 是帖子的评论数。但是,第一个解决方案是我总是可以在获取数据后在 Node 中将其过滤掉
此外,当我尝试按 post.id 使用 group(以便更容易在节点中遍历)时,我收到以下错误:
我可以尝试的第二件事是发送一个我想要加载的 post_ids 数组并加载 pg_function 并将它们发送回来,但我不能完全正确地查询:
称之为:
但是,即使尝试从一个索引中获取值,我也会收到以下错误:
最后,最后的解决方案是简单地对 postgres 进行 N 次单独调用,其中 N 是带有评论的帖子数,因此如果我有 5 个带有评论的帖子,我会使用 post_id 对 postgres 进行 5 次调用,并从 Comments 表中进行选择。
我真的不知道该怎么做,任何帮助将不胜感激。
谢谢
postgresql - 无法理解 node-postgres 错误
使用 node-postgres,以下代码段可以正常工作:
但是如果我将以上内容更改为:
产生 - 未处理的拒绝错误:“%”处或附近的语法错误。
我怀疑这可能与用户字段的类型为“uuid”这一事实有关,但并没有真正的线索。参数以字符串形式提供:
任何人都能够阐明我在这里做错了什么?谢谢。
node.js - node-postgres:参数化插入查询缓存,第二次运行失败
我正在尝试使用node-postgres运行两个参数化插入查询:第一个指定主键列,第二个不指定。
第二个查询,即使没有指定主键列,也不能说有一个重复的主键。
我的 pg 表:
重现此问题的代码:
和运行这个的输出:
我从阅读node-postgres
源代码中收集到的信息,参数化查询被视为准备好的查询,如果它们重用name
参数,它们会被缓存;尽管通过挖掘它的来源,它似乎并不认为我的查询具有名称属性。
有人对如何避免这种情况有任何想法吗?
node.js - Node-Postgres SELECT WHERE IN 动态查询优化
我们正在使用node-postgres包开发带有 Postgres 数据库的 Node/Express Web 应用程序。我们按照这个问题中的说明进行操作,并以这种方式编写查询:
data
是一个包含字符串fileName
和列名数组的对象columns
。我们希望此查询从动态列数的“列”和“文件”表中提取信息。
db.query
作为参数(query, args, cb)
,其中query
是 SQL 查询,args
是要传递给查询的参数数组,cb
是与数据库结果一起执行的回调函数。
所以以这种方式编写的代码返回了正确的数据,但是(我们认为)它很难看。我们尝试了不同的方式将参数传递到查询中,但这是唯一成功返回数据的格式。
有没有更简洁/更简单的方式来传递我们的参数?(例如,以 node-postgres 将接受的任何方式传递参数,而不必从我的数组 + 非数组元素创建一个额外的数组。)
问这个是因为:
- 也许有更好的方法来使用 node-postgres 包/我们使用不正确,并且
- 如果这是解决此类问题的正确方法,则此代码补充了上述问题中的答案。