问题标签 [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 投票
2 回答
169 浏览

javascript - 这三个 JavaScript 函数参数是如何使用的?

我查找了 JavaScript 函数和参数,但找不到任何东西可以帮助我理解如下所示的函数。可以参考原教程

createPuppy 有三个参数:req、res 和 next。

路由器正在调用该函数:

当调用 db.createPuppy 时,没有传递任何参数。

这三个参数如何适合这个函数?

更新:我是 Node、JavaScript、pg-promise 和 express 的新手。所以缩小挖掘范围有点不知所措。我来这里是为了获得关于在哪里缩小我的关注范围的线索。谢谢!

0 投票
1 回答
12564 浏览

arrays - ,柱子是 jsonb 类型,但表达式是 text[] 类型

有如下数组,需要保存在 JSONB 列中:

我只是将 req.body 对象(来自 Express)传递给数据库。

**通过 pg-promise 库的 PG DB 抛出错误:

我认为它的驱动程序问题 cos 数组:formatting.js [in pg-promise lib] 中的函数(arr)返回字符串并且 postgres 无法消化它。如果数组嵌套在任何对象中,那么它可以顺利工作,例如

这里 MyPref 在“FoodPref”列中通过,没有任何问题。

0 投票
1 回答
165 浏览

javascript - 使用 Node JS 的动态 PostgreSQL 文件

我有一个巨大的 PostgreSQL 文件(300 行),用于在我的 NodeJS 应用程序中创建一个新客户端。(我使用 pg-promise。)我读取文件并使用以下简单代码返回结果:

我工作很棒。

在处理文件之前,我必须手动更改文件中声明的变量。

例如,我的 SQL 文件以声明 20-30 个变量开始。

创建客户端.sql:

我的问题:有没有办法将动态变量从我的 javascript 注入 SQL 文件?

0 投票
2 回答
3041 浏览

postgresql - PostgreSQL 多值更新

是否可以在 PostgreSQL 中执行多值 upsert?我知道存在多值插入,如果密钥被违反,“ON CONFLICT”关键字也会执行更新......但是是否可以将两者结合在一起?像这样的东西...

我用谷歌搜索了这个问题,找不到任何关于它的东西。

我有一个使用 pg-promise 的应用程序,我正在做批处理。它可以工作,但速度非常慢(比如每 5 秒左右 50 行......)。我想如果我可以取消批处理,而是正确构建这个多值 upsert 查询,它可以提高性能。

编辑:嗯......我自己试过了,不,它不起作用。除非我做错了。所以现在我想我的问题已经变成了,什么是实现这样的好方法?

0 投票
3 回答
2765 浏览

node.js - 使用 pg-promise 跳过更新列

我在节点上使用 pg-promise 为 Postgres 建立了一个 API,这很好用,但我正在考虑如何修改 PUT 语句以更好地处理输入中的 NULLS。

以下是 PUT 语句的代码:

现在该语句有效,但如果我将 NULLS 传递给下一次更新,它也会删除现有值。例如,如果我只想更新 string1 和 date2,我必须发送整个 json 对象或所有其他值都设置为 NULL。

有没有更好的方法来处理这个?我应该改用 PATCH 动词吗?

0 投票
2 回答
778 浏览

javascript - 如何将错误从 pg-promises 中的子承诺投向父承诺

我有两个表“A”和“B”。我想在表“B”中创建一行,其中包含表“A”的主键,整个操作应该是原子的。

在这里,每当嵌套承诺出现错误时,我想拒绝父承诺并将该错误传递给父承诺。

0 投票
1 回答
886 浏览

node.js - Node.js 中的数据库查询分析

我正在使用express(好吧,也许会移至koa)构建一个 json API。我将我的数据存储在 PostgreSQL 数据库中,并用于pg-promise从中获取数据(async/await通过 babel)。

我对 node.js 完全陌生,在那个环境中我找不到任何关于性能测量的信息。

再具体一点:

我想知道(如果可能SELECT,以编程方式)消耗了多少时间。(不是承诺从构建到解析的时间,这可以通过两个时间戳来实现,而是数据库服务器处理查询所消耗的实际时间)。

这可以实现吗?如果是这样,怎么做?

0 投票
1 回答
300 浏览

node.js - 使用 pg-promise 添加数据的多次插入

我有一个要插入到 postgres 数据库中的大型数据集,我可以像这样使用 pg-promise 来实现这一点

数据集是一个对象数组,如下所示:

挑战是我有一列added_at不包含在数据集中并且不能是null. 如何为查询中的每个记录插入添加时间戳。

0 投票
1 回答
546 浏览

node.js - 解析promise数组node.js

我是 Promise 的新手,我正在尝试在 Node.js 和 PostgreSQL 中使用 RSVP Promise,但我做错了,很可能。任何有关如何解决该问题或如何改进代码的建议都值得赞赏。

我试图实现的是:接收数据后 - 处理数据以创建 SQL 更新查询,并在它们准备好时 - 执行它们。这里的数据是用户 ID 数组。

什么不起作用:我得到了一系列无法​​解决的承诺数组,我尝试像这样解决数组:

但它也没有奏效。

编码:

1)接收数据并调用函数'promiseQuery'处理数据的函数'update':

2)函数'promiseQuery'处理数据(它比较接收到的数据和db中的数据以用新数据更新db):

3)该函数'populateUpdateArray'填充需要更新的用户ID数组(基本上,接收到的用户ID应该替换数据库中的ID - 因为我们检查我们收到的哪些ID不在数据库中,哪些ID不在数据库中收到的ID):

4) 该函数“populateUpdateQuery”返回 sql 更新查询:

谢谢!

编辑:我将代码更改为只有一个数据库连接,并稍微简化了代码。我没有收到任何错误,但仍然没有执行查询。我想我在这里缺少一些基本的东西:

0 投票
1 回答
122 浏览

postgresql - travis-ci postgres `SELECT EXISTS` 查询返回不同的结果

我正在做一些测试,pg-promise涉及删除一个表并重新创建一个表。

所有测试都在我的本地机器上通过。但是travis-ci,它似乎跳过了所有DROP TABLE ...SQL,导致测试失败。

有人知道为什么吗?是权限问题吗?

有没有办法让我进一步调试这个,比如连接到travis-cipostgres 服务器?

更新:我没有放任何代码,因为所有测试都通过了我的本地环境,所以我认为这只是一个travis-ci问题。以下是我认为traivs-ci正在跳过的部分。

Update2:经过一些进一步的测试,事实证明测试失败是因为

db.one('SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name=$1)', [tableName])

没有返回预期值。查询{ '?column?': false }在 travis 上返回,但{ exists: false }在我的本地环境中返回。

这是一个travis-ci问题吗?还是postgres版本问题?