问题标签 [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.

0 投票
1 回答
3196 浏览

postgresql - 到 postgres 的连接因“此套接字已关闭”错误消息而关闭

我正在向 node.js 0.6.12 迁移,现在在使用 pg 模块(版本 0.6.14)时收到以下错误消息:

我的代码中指示的行是:

这可以在节点 0.4.8 和 gp 0.5.0 上正常工作,但现在我正在测试迁移,现在不再工作了。

我在网上看到了几个类似这样的错误,但没有答案。

更新

这似乎与我处理 postgres 连接的方式有关。今天我在运行应用程序时创建了一个连接。我认为在每个请求上创建一个新连接会更好。在快速中间件中创建连接的最佳解决方案是什么?

0 投票
7 回答
14269 浏览

postgresql - 连接到 Heroku PostgreSQL 数据库时的身份验证错误

我正在使用 PostgreSQL 开发 Node.js 应用程序并托管在 Heroku 上。我的问题是我收到这样的身份验证错误:

这可能是 SSL 问题,但不应该像这里提到的那样。开箱即用应支持 SSL。所以我很难过,只能问什么可能导致这个错误?

我不确定是否必须在我的系统上编辑 pg_hba.conf,但我什至找不到它。

0 投票
1 回答
3148 浏览

node.js - node-postgres 不会插入数据,但也不会抛出错误

我正在为 node.js 使用node-postgres模块,但插入数据时出现问题。

功能:

数据库中不会出现新数据。query.on('error')andquery.on('end')事件永远不会被触发。想想看,我开始怀疑是否甚至触发了查询(但我不明白为什么不应该)。

我得到的唯一日志是:

那么我应该如何进行调试呢?

0 投票
7 回答
57036 浏览

node.js - node-postgres:如何执行“WHERE col IN()“ 询问?

我正在尝试执行这样的查询:

问题是我要过滤的 id 列表不是恒定的,每次执行时都需要不同。我还需要转义 id,因为它们可能来自不受信任的来源,尽管无论来源的可信度如何,我实际上都会转义查询中的任何内容。

node-postgres 似乎只适用于绑定参数client.query('SELECT * FROM table WHERE id = $1', [ id ]):如果我有已知数量的值(client.query('SELECT * FROM table WHERE id IN ($1, $2, $3)', [ id1, id2, id3 ])),这将起作用,但不能直接使用数组:client.query('SELECT * FROM table WHERE id IN ($1)', [ arrayOfIds ]),因为似乎没有对数组参数进行任何特殊处理。

根据数组中的项目数动态构建查询模板并将 ids 数组扩展为查询参数数组(在我的实际情况下,它还包含除 ids 列表之外的其他参数)似乎过于繁琐。在查询模板中硬编码 id 列表似乎也不可行,因为 node-postgres 不提供任何值转义方法。

这似乎是一个非常常见的用例,所以我的猜测是我实际上忽略了一些东西,而不是不可能将常见的IN (values)SQL 运算符与 node-postgres 一起使用。

如果有人以比我上面列出的更优雅的方式解决了这个问题,或者如果我真的错过了关于 node-postgres 的一些东西,请帮忙。

0 投票
1 回答
1433 浏览

postgresql - node.js 与 PostgreSQL 和 socket.io 错误:套接字不可写

我一直在玩 socket.io,它似乎运行良好。不过最近,我安装了 postgreSQL,以便在每次事件发生时向数据库插入行(并且事件每秒发生 2 或 3 次!)......这是一个片段:

我们得到错误:

关于导致问题的原因以及如何解决问题的任何想法?

我将以下库用于 postrgreSQL https://github.com/brianc/node-postgres

0 投票
1 回答
712 浏览

postgresql - 如何设置 node-postgres?

我有一个 PostgreSQL,php5,在 Apache2.0 上运行(在 Windows 机器上。)

我希望能够在更新某些表行时将更新推送到客户端的浏览器。我遇到了这个https://github.com/brianc/node-postgres

  1. 在服务器端设置什么以及如何设置?
  2. 如何安装/设置 node-postgres?
  3. node-postgres 是否假设我已经在使用 node.js 或者它是一个完整的包?
  4. 更新指定表时如何向客户端浏览器发送消息?

我只需要一些方向来开始!谢谢 :)

0 投票
3 回答
1367 浏览

postgresql - 如何在用户的浏览器上实现 node-postgres?

所以我在我的本地机器上测试了这个特定的例子:http:
//bjorngylling.com/2011-04-13/postgres-listen-notify-with-node-js.html

有效!因此,现在当我更新特定表并运行我的 node.js 文件(来自教程)时 - 我会在终端(mac)上收到即时通知!凉爽的!

但是我如何在客户端的浏览器上实现它呢?

首先,在 node.js 脚本中,您会注意到我必须使用我的用户名和密码连接到数据库:

我显然不能在用户浏览器下载的 .js 文件中浮动。

另外,我什至不知道我必须在<head>. 我在任何地方都找不到关于如何在现实世界中使用它的任何东西……我所看到的只是可以在命令行中使用的简洁的小示例。

任何建议或正确方向的指导都会很棒!谢谢。

0 投票
2 回答
2958 浏览

node.js - node-postgres“事件发射器样式”与“回调样式”

node-postgres声明如下:

node-postgres 支持“事件发射器”样式 API 和“回调”样式。回调风格更简洁,通常更受欢迎,但事件 API 可以派上用场。它们可以混合搭配。

使用事件发射器 API,我可以执行以下操作:

然后我可以db使用db.query('sql statement here'). 使用回调样式,每次我想运行查询时都会执行以下操作:

所以我的问题是为什么“通常首选”使用回调样式?每次对数据库做某事时打开一个连接不是效率低下吗?使用回调样式有什么好处?

编辑

我可能会误解他所说的“回调样式”是什么意思(我不是在开玩笑,我的 JavaScript 不是很强大),但我的问题是关于连接方法。我假设以下是回调样式连接方法:

以下是 EventEmitter API 连接方法:

如果我只是在这里混淆了术语,我的问题仍然存在。pg.connect(do queries)每次使用时都会打开一个新连接(不是吗?)而

打开一个连接,然后允许您client在必要时使用它来运行查询,不是吗?

0 投票
1 回答
2722 浏览

node.js - node-postgres 是否支持多个结果集

我有一个返回多个结果集的 PostgresQL 函数。我可以毫无问题地在 .net 中提取这些结果集(所以我知道我的函数可以正常工作),但是我在使用 node-postgres 时遇到了麻烦。

结果对象返回一个包含 7 个项目的数组,该数组与返回的数据集的数量相匹配。

在 Node 中,7 行中的每一行都只包含一个字符串<unnamed portal 1>

那么:node-postgres 是否支持多个结果集,如果支持,关于如何提取的任何建议?

编辑:如果其他人将来需要使用它,这是我与 node-postgres 一起使用的代码。

0 投票
3 回答
9960 浏览

node.js - node-postgres:如何在不执行查询的情况下准备语句?

我想使用 node-postgres 模块在 postgres 中创建一个“准备好的语句”。我想创建它而不将其绑定到参数,因为绑定将在循环中进行。

在我阅读的文档中:

我试过

但是当我尝试只传递配置对象中的文本和名称键时,我得到一个异常:

(翻译)消息绑定 0 个参数,但准备好的语句需要 1

有什么我想念的吗?如何在不将其绑定到特定值的情况下创建/准备语句以避免在循环的每个步骤中重新准备语句?