问题标签 [pg-promise]

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.

0 投票
1 回答
915 浏览

node.js - 带有异步/等待的节点 - 如何获取发生错误的特定行?

我在节点中有一个函数,如下所示:

getSomeData() 看起来像这样:

当 pgPromise(与 PostgreSQL 对话的库)抛出错误时,错误的堆栈跟踪仅包含发生错误的 pgPromise 库 的内部行号。

因此,当错误被捕获并记录到 Sentry.io 服务时,我无法知道错误的确切行。

我怎样才能做到这一点,以便错误将包含在堆栈跟踪中,告诉我错误发生在第 351 行

0 投票
2 回答
2503 浏览

node.js - 带有 pg-promise 的大量插入

我在用着pg-promise,我想对一张表进行多次插入。我已经看到了一些解决方案,例如使用 pg-promise 进行多行插入以及如何使用 node-postgres 将多行正确插入到 PG 中?,我可以使用 pgp.helpers.concat 来连接多个选择。

但是现在,我需要在一个表中插入很多测量值,超过 10,000 条记录,并且在https://github.com/vitaly-t/pg-promise/wiki/Performance-Boost中说:“多少条记录您可以像这样连接 - 取决于记录的大小,但我永远不会使用这种方法超过 10,000 条记录。因此,如果您必须插入更多记录,您可能希望将它们拆分成这样的连接批次,然后执行它们逐个。”

我阅读了所有文章,但我无法弄清楚如何将我的插入“拆分”成批次,然后一个接一个地执行它们。

谢谢!

0 投票
1 回答
1185 浏览

javascript - pg-promise:将函数作为参数传递给 func()

我正在使用pg-promise来访问我们的 postgres 数据库。我想调用一个foo(geom)接受几何数据类型(PostGIS)的存储过程。虽然我只有 lats/lngs 开始,所以我想使用 postGIS 转换它们。

这看起来像这样:

我现在收到一个错误,抱怨我的几何图形无效(转换没有发生)。我确信ST_MakePoint我所拥有的价值观是可行的。我猜它在数据库上执行时将其解释为字符串而不是函数调用。

我应该如何传递此参数以使其工作?

0 投票
1 回答
2983 浏览

node.js - 如何使用 pg-promise 帮助器返回插入查询结果值

我正在使用pgp.helpers.insert将数据保存到运行良好的 PostgreSQL 中。但是,我需要返回值以呈现在响应中。我在用:

不返回任何数据。

我想要做的是在插入成功后返回分支 id,例如:

0 投票
2 回答
423 浏览

javascript - 如何将嵌套回调变成承诺?

最近我开始使用 pg-promise 和 bluebird 库。我一直err在每个回调中嵌套回调和处理。我发现catchpromise 中的语句看起来非常简洁。我不确定是否可以将此代码转换为承诺基础?

0 投票
1 回答
2621 浏览

node.js - pg-promise 事务响应

所以我有点卡在这里。

我有一个对象,例如:

现在我需要做的是在 pg-promise SQL 事务中循环,以确保关联 id 的数据库数量中的行项目 >= 对象项目,所以:

如果我收到 3 个结果,则该对象为真,我可以插入请求

当然,如果我的结果比 lineItems 对象中的结果少,那么我就不会理会该INSERT语句,而只需返回一个'item id: 4, quantity:22 doesn't have enough inventory to perform your request...

我最初使用的是:

checkInventory我调用的函数在哪里

这会产生以下错误:

有任何想法吗?

0 投票
3 回答
184 浏览

node.js - 如何使用 Promise 将语句链接在一起

我是 node 新手,并且学习了所有关于 Promise 的知识,特别是 pg-promise。这就是我想要使用 Express 和 pg-promise 做的事情:

  1. 查看电子邮件,
  2. 如果找不到检查用户名,
  3. 如果没有找到创建一个新用户。
  4. 返回用户id

我已经设置了我的存储库(db.users),它执行的 sql 运行良好。

在我的授权处理程序中,我不确定如何使 repo 调用彼此跟随。语法对我来说似乎很笨拙。这是我到目前为止所拥有的:

也许 pg-promises 不会像这样链接在一起?它们应该相互嵌套还是完全独立的块?此外,不太确定捕获的位置。按照各种教程,我已经尝试了所有我能想到的方法,但是我收到了诸如“无法设置已设置的标头”和“未返回承诺”之类的错误。如果有好心人可以在这里指导我,我将不胜感激。

0 投票
1 回答
764 浏览

node.js - 节点 - 在 promise catch 块上抛出 SOAP 错误

我正在使用SOAP库在 NodeJ S (v6.9.4)中开发一个SOAP 服务器。我必须从 Postgres 数据库中请求一些数据。我选择使用pg-promise库。

SAOP 服务的实现方式如下:

如果在数据库连接/请求期间出现错误,我需要返回一个 SOAP 故障。在 SOAP 库上,您可以通过抛出一个新的故障对象来做到这一点。

在这个例子中,我想把它扔到 catch 块中。我知道这不是正确的方法,我正面临这个问题:

UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:3):[object Object]

如何在主服务函数中抛出我的 SOAP 错误异常。我尝试了 setTimeout 解决方案但没有成功。promise 是 PG 查询的一个很好的解决方案吗?

0 投票
0 回答
644 浏览

node.js - 如何处理 pg-promise 中的 Postgres 用户身份验证?

我的桌面应用程序使用 Postgres 身份验证并保持与 Postgres 的永久连接,因此每个查询都由特定用户执行。由应用程序的单个实例发送的所有查询都必须在同一个 Postgres 会话中执行。会话可以持续长达几个小时,并且大部分时间它可以是空闲的。

我想使用 pg-promise 获得相同的功能。在使用 express/pg-promise 进行一些测试后,我有点困惑,因为我找不到这样做的方法。我是网络开发的新手,所以请为初学者提供一个简单的答案。

0 投票
1 回答
1263 浏览

javascript - 如何使用 pg-promise 传递表名和参数

我是节点新手,随后是 pg-promise。我在我的 node express 应用程序中试图实现的是一个路由,它将作为一个 api 在数据库中的表中执行单个字段更新。这必须只是一个将使用表名、列名、列值和列 id 值调用的单一路由,以识别表中要更新的行。

这是我到目前为止尝试过的代码,但我似乎无法正确:

不幸的是,它引发了以下错误:

ERROR: syntax error at or near "$"

还有一种方法可以从catch()函数中打印查询字符串,这样调试会更容易一些吗?