问题标签 [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.
postgresql - 到 postgres 的连接因“此套接字已关闭”错误消息而关闭
我正在向 node.js 0.6.12 迁移,现在在使用 pg 模块(版本 0.6.14)时收到以下错误消息:
我的代码中指示的行是:
这可以在节点 0.4.8 和 gp 0.5.0 上正常工作,但现在我正在测试迁移,现在不再工作了。
我在网上看到了几个类似这样的错误,但没有答案。
更新
这似乎与我处理 postgres 连接的方式有关。今天我在运行应用程序时创建了一个连接。我认为在每个请求上创建一个新连接会更好。在快速中间件中创建连接的最佳解决方案是什么?
postgresql - 连接到 Heroku PostgreSQL 数据库时的身份验证错误
我正在使用 PostgreSQL 开发 Node.js 应用程序并托管在 Heroku 上。我的问题是我收到这样的身份验证错误:
这可能是 SSL 问题,但不应该像这里提到的那样。开箱即用应支持 SSL。所以我很难过,只能问什么可能导致这个错误?
我不确定是否必须在我的系统上编辑 pg_hba.conf,但我什至找不到它。
node.js - node-postgres 不会插入数据,但也不会抛出错误
我正在为 node.js 使用node-postgres模块,但插入数据时出现问题。
功能:
数据库中不会出现新数据。query.on('error')
andquery.on('end')
事件永远不会被触发。想想看,我开始怀疑是否甚至触发了查询(但我不明白为什么不应该)。
我得到的唯一日志是:
那么我应该如何进行调试呢?
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 的一些东西,请帮忙。
postgresql - node.js 与 PostgreSQL 和 socket.io 错误:套接字不可写
我一直在玩 socket.io,它似乎运行良好。不过最近,我安装了 postgreSQL,以便在每次事件发生时向数据库插入行(并且事件每秒发生 2 或 3 次!)......这是一个片段:
我们得到错误:
关于导致问题的原因以及如何解决问题的任何想法?
我将以下库用于 postrgreSQL https://github.com/brianc/node-postgres
postgresql - 如何设置 node-postgres?
我有一个 PostgreSQL,php5,在 Apache2.0 上运行(在 Windows 机器上。)
我希望能够在更新某些表行时将更新推送到客户端的浏览器。我遇到了这个https://github.com/brianc/node-postgres
- 在服务器端设置什么以及如何设置?
- 如何安装/设置 node-postgres?
- node-postgres 是否假设我已经在使用 node.js 或者它是一个完整的包?
- 更新指定表时如何向客户端浏览器发送消息?
我只需要一些方向来开始!谢谢 :)
postgresql - 如何在用户的浏览器上实现 node-postgres?
所以我在我的本地机器上测试了这个特定的例子:http:
//bjorngylling.com/2011-04-13/postgres-listen-notify-with-node-js.html
有效!因此,现在当我更新特定表并运行我的 node.js 文件(来自教程)时 - 我会在终端(mac)上收到即时通知!凉爽的!
但是我如何在客户端的浏览器上实现它呢?
首先,在 node.js 脚本中,您会注意到我必须使用我的用户名和密码连接到数据库:
我显然不能在用户浏览器下载的 .js 文件中浮动。
另外,我什至不知道我必须在<head>
. 我在任何地方都找不到关于如何在现实世界中使用它的任何东西……我所看到的只是可以在命令行中使用的简洁的小示例。
任何建议或正确方向的指导都会很棒!谢谢。
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
在必要时使用它来运行查询,不是吗?
node.js - node-postgres 是否支持多个结果集
我有一个返回多个结果集的 PostgresQL 函数。我可以毫无问题地在 .net 中提取这些结果集(所以我知道我的函数可以正常工作),但是我在使用 node-postgres 时遇到了麻烦。
结果对象返回一个包含 7 个项目的数组,该数组与返回的数据集的数量相匹配。
在 Node 中,7 行中的每一行都只包含一个字符串<unnamed portal 1>
。
那么:node-postgres 是否支持多个结果集,如果支持,关于如何提取的任何建议?
编辑:如果其他人将来需要使用它,这是我与 node-postgres 一起使用的代码。
node.js - node-postgres:如何在不执行查询的情况下准备语句?
我想使用 node-postgres 模块在 postgres 中创建一个“准备好的语句”。我想创建它而不将其绑定到参数,因为绑定将在循环中进行。
在我阅读的文档中:
我试过
但是当我尝试只传递配置对象中的文本和名称键时,我得到一个异常:
(翻译)消息绑定 0 个参数,但准备好的语句需要 1
有什么我想念的吗?如何在不将其绑定到特定值的情况下创建/准备语句以避免在循环的每个步骤中重新准备语句?