问题标签 [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 回答
346 浏览

node.js - Sequencing actions with async db programming

New to async and struggling. As an example below I wish to init a table then process it's contents by: a) Remove old data b) Insert a new record c) Read the table into an array d) Display the array

The output is not as desired but somewhat as expected. Interestingly after "Inserted new records" there is a 30 second wait before the command prompt is retuned.

My question is ultimately with async programming surely there are scenarios where actions need to be performed in sequence such as the example above and in such a scenario how can this be coded in an async environment such as node.js.

0 投票
1 回答
862 浏览

node.js - 使用事务时,查询中包含的子查询如何在 pg-promise 中工作?

我正在使用pg-promisenode.js,我想确保我正确理解有关交易的文档。

假设我执行了以下交易:

这最终会执行哪些 postgres 查询?

postgres 交易将是:

换句话说,包含在其他查询中的子查询是否包含在同一个BEGIN/COMMIT块中?

0 投票
1 回答
43 浏览

api - npm restful api突然不再工作

我按照本教程使用 npm 和 postgres 创建了一个 restful api

使用 Node 和 Postgres 设计 RESTful API

我让一切正常工作,关闭服务器并去做其他事情..当我回来时,路由突然停止工作404 error..我检查了与路由相关的所有内容,但找不到问题!

当我连接到时,localhost:3000我得到了正确的快速主页,但是当我尝试访问 api 时,localhost:3000/api/patients页面404 error出现

这是我的代码

index.js

queries.js

0 投票
1 回答
1201 浏览

json - 使用 pg-promise 格式化 JSON 输出,将外键封装为对象

我正在使用 Node.JS 和 PostgreSQL 构建一个非常简单的 REST 平台,使用 pg-promise 来访问数据库。我的目标是创建一个非常简单的票务系统,其中包含用户和票证。在这一点上,我只想能够查询服务器以获取所有票证的列表。

我的数据库由以下格式的两个表组成:

如您所见,有一个外键指向人员的票。我用以下数据填充了我的数据库:

我使用 pg-promise 和以下查询函数来呈现 JSON 响应:

该函数有效,我可以检索以下格式的 JSON 输出:

然而,这不是我想要的格式。我想将 'persons' 对象封装在 'tickets' 对象中,替换外键如下:

我想这样做的原因是我可以轻松地从 Angular2 服务中使用这个 API,并将票证和人员转换为我的组件中的对象。但是,我完全不知道如何去做,而且 pg-promise 文档也没有帮助。

过去一年我一直在使用 Django 进行网络编程,但自从我切换到 Node.JS 后,我感觉自己完全是个新手。有人可以帮我一把或指出我正确的方向吗?

0 投票
0 回答
457 浏览

node.js - Postgres:插入并返回ID或返回现有行的ID

我需要调整此语句以根据 2 个参数在行存在时返回 id,如果不存在则插入行:

1并且current_timestamp需要参数化。我将从 nodejs 使用它。我刚刚使用了 pgsql 函数,因为当我补充时间戳时,就像'2016-08-18T14:51:42.333Z'它说我需要转换它一样。

当前状态是使用current_timestamp函数,它将插入新行但不返回它的 id。

这是我在这个线程的帮助下构建的。

感谢您的解决方案。

0 投票
1 回答
504 浏览

ios - 通过node.js RestAPI将图像从ios swift发布到postgres数据库

我正在尝试通过 RestAPI(使用 npm 和 pg-promise)将我的 ios 应用程序(swift)连接到 postgres 数据库

发布字符串和整数值就像一个魅力,但我无法将图像发布到数据库

我正在将图像解码为 base64 字符串,因此我可以将其发送到 POST 请求,然后将字符串发布到我的表中或在发布之前将其解码为 bytea ......这两种方法都适用于一些图片,但无法适用于其他图片我的“格式不正确”错误...

这是我的代码

ios Swift

queries.js

现在,这种方法可以完美地处理这张图片以及更多内容,但无法处理这张图片和更多内容。知道为什么吗?我注意到如果图片超过几百千字节,post方法就会失败......这可能吗?为什么?有没有办法解决这个问题?

注意:所有图片都是jpg格式,所以格式不是问题

0 投票
1 回答
2729 浏览

node.js - 使用 pg-promise 的相互依赖的事务

我正在尝试构建一个涉及帖子和帖子标签的应用程序。对于这些,我有一个post,tagspost_tag表。tags有我之前定义的标签,并且在应用程序的某处被建议给前端的用户。post_tag表在每一行上将帖子标签 ID作为对保存。

我使用 express.js 和 postgreql 和 pg-promise。

据我所知,我需要一个事务查询来进行创建发布操作。

此外,我需要一种机制来检测用户创建帖子时标签是否不在tags表中,以便我可以即时插入它,并且我有一个用于在表中使用的tag_id每个标签。否则,我将有一个,因为我需要分别表列和引用和表列。insertionpost_idtag_idpost_tagforeign key errorpost_tagpost_idtag_idpoststagsid

这是我迄今为止使用的 url 函数,但未成功:

0 投票
0 回答
143 浏览

node.js - pg-promise:事务:处理缺失的属性

这是我传递给批处理事务的查询:

输入数组可能包含也可能不包含其中一个键,例如${crtd}。这会抛出Error: property 'crtd' does not exist并且整个批次都失败了。

我仍然希望插入这一行,仅包含{id}and {name}${crtd}也是一个可为空的列。

在下面,'l' 是缺少键 ${crtd} 的输入 json。

如何处理?

0 投票
0 回答
618 浏览

javascript - pg-promise:将存储过程参数转换为 postgres 中该列的数据类型

尝试使用 pg-promise 通过存储过程插入 PostgreSQL。我只看到没有.tz 参数的整数/时间戳被成功插入。每当存储过程包含布尔值、字符变化参数时,该过程都会失败并显示:

函数(整数,未定义,未定义)不存在。

即使是最简单的存储过程(完全明确)也会因此错误而失败。

在 Java 中也面临同样的问题,但可以明确地将每个参数转换为

" 51212::INTEGER,'Name'::CHARACTER VARYING, '2016-07-26'::timestamp without time zone"

而 pg-promise 不允许我提出论点。

实际上是否可以在没有显式转换的情况下调用 Postgres 存储过程,无论是来自 Java 还是 Javascript?如果是这样,怎么做?

有效的是:只需使用双引号而不是单引号......

0 投票
1 回答
1321 浏览

node.js - 使用带有命名参数的 pg-promise 时出现“ORDER BY 中的非整数常量”

我正在尝试使用 pgp-promise 库编写一个简单的查询。我的原始实现如下所示:

但这给出了一个错误,non-integer constant in ORDER BY 我也尝试在周围添加引号${orderBy}并将双引号添加到 orderBy 参数中无济于事。我有一个可行的解决方案,var qs = 'select * from mytable order by "' + orderBy + '";'尽管应该很明显为什么我不想在项目中使用这样的代码。

我的问题:有没有办法让 pg-promise 构建一个带有不易受 sql 注入攻击的 order by 子句的查询?