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

node.js - 错误关系不存在

我的[error: relation "causes" does not exist]节点应用程序出现错误。这种关系确实存在,我不确定问题是什么。

我用

这是给出错误的查询:

0 投票
3 回答
2402 浏览

node.js - 节点中使用 PostgreSQL 的异步数据库查询不起作用

使用 Node.js 和node-postgres 模块与数据库进行通信,我正在尝试编写一个函数,该函数接受一组查询和回调,并使用相同的数据库连接异步执行它们。该函数接受一个二维数组并调用它如下所示:

并且该函数遍历数组,为每个子数组创建一个查询,如下所示:

当我运行上面的代码时,我希望看到这样的输出:

然而,输出奇怪地看起来像这样:

不仅为这两个请求调用了第二个函数,而且似乎在客户端的查询队列完成运行之前调用了排水代码......然而第二个查询仍然运行得很好,即使client.end()代码表面上杀死了调用事件后的客户端。

几个小时以来,我一直在为此烦恼。我尝试在我的示例数组中进行硬编码(从而删除了 for 循环),并且我的代码按预期工作,这让我相信我的循环存在一些我没有看到的问题。

任何关于为什么会发生这种情况的想法将不胜感激。

0 投票
1 回答
7102 浏览

node.js - Node-postgres 日期未准确保存

我正在使用 Node.js、Postgres 和node-postgres库。当我尝试使用如下代码插入具有当前日期的新记录时:

这运行良好,没有错误。但是,当我对数据库运行 select 语句并记录结果时,给出的日期显示为:

这很好,除了当我插入记录时,是 11 月 21 日星期四。时间是 5:47,而不是输出显示的 7:00。

我又运行了几次代码,无论何时,它都存储了相同的不准确日期,即使下一小时已经开始。这让我相信,出于某种原因,它只存储日期而不是小时或分钟。此外,日期仅差一天这一事实表明,问题可能与 node-postgres 处理日期的方式有关。

我知道 Javascript 在将当前日期传递给查询时计算当前日期不是问题,因为我记录new Date()了日期、分钟、小时和秒,并且它是准确的。

对此问题的任何帮助将不胜感激。谢谢!

0 投票
1 回答
1265 浏览

arrays - 从 node-pg 和 SQL 注入将自定义类型的数组传递给 postgres 函数

我通过生成 SQL 查询从 node.js(使用 node-postres)调用此函数。我想避免它并想使用参数化查询,因为我认为它对 SQL 注入攻击不安全。我找不到将自定义类型数组传递给 node-postgres 的查询方法的方法。有没有办法将自定义类型数组传递给 node-postgres 的查询函数?

询问:

0 投票
2 回答
548 浏览

postgresql - 对象数组上的异步 pg-node 查询执行

我有一个需要遍历的对象数组,并将每个项目插入数据库(postgres)。我正在使用_.each以遍历数组。

我怎样才能编写这个函数(_each)以使其对每个查询执行都是异步的?

谢谢

0 投票
4 回答
25396 浏览

node.js - 使用 node-postgres 在 utc 中获取 Postgres“没有时区的时间戳”

我有一些时间戳存储为 Postgres 类型timestamp without time zone

我将以时间戳2013-12-20 20:45:27为例。我打算这代表一个UTC时间戳。

在 psql 中,如果我运行 query SELECT start_time FROM table_name WHERE id = 1,我会按预期返回那个时间戳字符串2013-12-20 20:45:27

但是,如果在我的 Node 应用程序中,我使用 node-postgres 库来运行相同的查询,我会得到本地时区的时间戳:Fri Dec 20 2013 20:45:27 GMT-0600 (CST). 这是一个 Javascript 日期对象,但它已经存储为该时区。我真正想要的是一个代表2013-12-20 20:45:27 GMT+0000. 我已经知道这次是UTC。

我尝试将我的 postgresql.conf 文件中的时区参数设置为: timezone = 'UTC',结果没有差异。

我究竟做错了什么?

编辑

问题似乎在这个文件中:https ://github.com/brianc/node-postgres/blob/master/lib/types/textParsers.js

如果从 Postgres 返回的日期字符串没有指定时区(即Z+06:30,那么它只是构造一个 JavaScript 日期对象,我相信它只会包含本地时区。我要么需要更改我的应用程序以存储数据库中的时区或覆盖此转换器。

0 投票
3 回答
9371 浏览

node.js - Node.js / Express - 如何在路由/index.js 中获取 app.js 中定义的变量?

我是 Node.js 和 Express 的新手。

如何访问在“routes/index.js”中名为“pg”的“app.js”中创建的变量?

应用程序.js

路线/index.js

我在浏览器中收到错误:

你们能给我一个线索吗?

此致

0 投票
1 回答
353 浏览

node.js - NPM 别名 node-postgres 到 node-postgres-pure

我正在构建一个需要在 Windows 服务器上运行的 nodejs 应用程序。我已经设法让几乎所有东西都正常工作,但是我遇到了 postgresql 驱动程序的问题。BrianC 有一个 node-postgres 的纯 javascript 实现,我想用它来避免构建 postgres 驱动程序。

有没有办法让我将 node-postgres(npm:pg) 别名为 node-postgres-pure(npm:pg.js) 以便任何尝试安装和解析 pg 的依赖包都将安装和解析 pg.js ?

谢谢

0 投票
0 回答
108 浏览

postgresql - 使用查询数组的一个值执行语句

我正在尝试使用准备好的数组执行查询。该数组有两个元素,但此查询仅使用其中一个。我正在使用节点 postgres。

大批:

询问:

这是我得到的错误:

如何仅使用查询数组的一个值执行语句?有没有办法让准备好的查询语句只接受数组的一个或一些元素?

0 投票
1 回答
4471 浏览

node.js - 无法安装 node-postgres

我正在尝试为我的项目设置 node-postgres。但是,当我尝试安装它时,我不断收到这些 gyp 错误。如何让 node-postgres 识别出我的 pg_config 位于 /Library/PostgreSQL/9.3/bin/pg_config 中。因为我最喜欢的搜索引擎结果告诉我这样做: