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

node.js - 使用 node-postgres 在 postgres 中存储文件

我正在尝试使用 node-postgres 模块将一个小文件存储到 postgres 数据库中。我知道我应该使用 bytea 数据类型来执行此操作。我遇到的问题是当我做一些事情时:

db 中文件列的内容是:\x 并且没有存储任何内容。如果我将数据缓冲区更改为十六进制,即 data.toString('hex') 文件将被存储,但当我读回文件时所有格式都会丢失。

使用 node-postgres 模块将文件存储到 postgres 的正确方法是什么?

0 投票
3 回答
6248 浏览

arrays - 将数组从 node-postgres 传递给 plpgsql 函数

plpgsql 函数:

node-postgres 查询 + 测试数组:

节点服务器的输出:

err:错误:数组值必须以“{”开头或维度信息
结果:未定义

我还尝试在客户端查询中转换参数,就像testarray($1::int[])返回相同的错误一样。

我将函数参数更改为(anyarray int),输出错误更改为:

错误:错误:整数的无效输入语法:“1,2,3,4,5”
结果:未定义

以及其他几个变体。

我寻找不产生错误并返回 5 的变体。

我阅读了关于Postgres parse-array 问题和关于 node-postgres 中参数化数组的这个 stackoverflow 问题:

但答案似乎并不存在。

0 投票
1 回答
3690 浏览

sql - 事务如何与 node-postgres 一起工作?

我正在使用 node-postgres 以回调样式进行 SQL 查询。我有一个函数可以接收查询列表并在事务块中执行它们。我的理解是我使用 node-postgres 提交查询“BEGIN”,在我的事务块中提交我需要的所有查询,然后提交查询“COMMIT”。

但是,尽管我的查询是有效的(简单的插入,作为独立查询经过良好测试),并且一切都肯定以正确的顺序执行,但当我在事务块之后测试数据库的状态时,我得到了不一致的状态。有时我的所有插入都发生了,有时只有其中一些发生了。我的理解是事务块是原子的,因此在提交后立即使用 SELECT 查找块中的插入应该是全部或全部。

这是我的功能:

使用辅助函数 tryQuery:

对出了什么问题有任何想法吗?

0 投票
4 回答
5704 浏览

node.js - 什么样的对象是 node-postgres 错误?为什么 node 的 console.log 和 JSON.stringify 处理方式不同?

console.log 像这样输出它,

但 JSON.stringify 没有看到错误的叙述部分,

{"length":86,"name":"error","severity":"ERROR","code":"42601","position":"62","file":"scan.l","行":"1001","例程":"scanner_yyerror"}

我不知道如何在阅读维基(https://github.com/brianc/node-postgres/wiki/Error-handling,http://nodejs . ru/doc/v0.4.x/stdio.html#console.log

代码是这样的,

谢谢

更新:err.toString()显示error: syntax error at or near "step"

0 投票
1 回答
7859 浏览

node.js - 如何在服务器中使用 node-postgres?

我正在编写一个使用 Postgres 数据库的 Node.js Web 服务器。我曾经像这样连接每个新请求:

但经过几次请求后,我在尝试连接时注意到 Heroku 出现“内存不足”错误。我的数据库只有 10 行,所以我不知道这是怎么发生的。我所有的数据库访问都是这种形式:

假设内存错误是由于与数据库有多个持久连接,我切换到node-postgres在文件顶部仅连接一次的几个示例中看到的样式:

但是现在,当我在连接中断后尝试执行查询时,我的请求会挂起(无限期地?)。(我通过杀死一个 Postgres 服务器并重新启动它来模拟它。)

那么我该怎么做其中之一呢?

  1. 正确汇集 Postgres 连接,以便我每次都可以“重新连接”而不会耗尽内存。
  2. 让全局客户端在网络故障后自动重新连接。
0 投票
6 回答
13866 浏览

node-postgres - 如何使用 node-postgres 进行同步查询(阻塞调用)?

在启动我的 Node.js 应用程序时,我想在继续控制流之前对 PostgreSQL 数据库进行几次同步调用以检查一些事情。如何使用 node-postgres 包实现这一点?

0 投票
1 回答
876 浏览

postgresql - Postgres:如何“插入……如果不存在……”

我有一个 postgres 表来跟踪几所不同学校的时间表时间段,我正在尝试编写一个函数(在 JavaScript 中使用 node-postgres 库),每个学校每天每个时间段插入 1 个新行为即将到来的一周。

谁能帮我弄清楚 WITH 命令能够(在一个查询中)检查表中是否已经存在特定的学校/日期/时间组合,如果不存在,则插入它?那有意义吗?

0 投票
2 回答
2069 浏览

node.js - 是否可以在 node-postgres 中设置 postgres search_path?

我正在将应用程序从 RoR 移动到 Express.js。ActiveRecord postgres 适配器具有 search_path 配置选项。

是否可以为 Client 设置 search_path ?

0 投票
1 回答
5389 浏览

node.js - 来自 node.js 的 postgres 连接

我在我的应用程序中使用node-postgres。我想知道我想遵循的最佳实践以确保稳定的连接。

以下是我现在正在使用的代码,

正如您在代码中看到的那样,我正在为每个请求连接数据库,并在查询执行后断开连接。我还有一个想法,我只能在全局范围内连接数据库一次,并使用打开的连接执行查询。代码看起来像

在这里,连接永远不会结束。据我所知,我无法决定哪一个是最好的。请建议。

谢谢..

0 投票
2 回答
5380 浏览

javascript - 从事件发射器回调中返回一个值

我在节点中使用 postgresql 模块'pg'。当从数据库返回一行时,我想做一些处理,但我不知道如何将值返回给调用函数。

当我打电话时:

我希望 boo 等于回调的返回布尔值。

我试图声明一个未初始化的变量,然后分配返回的布尔值,

但该函数不会等到 'pg' 返回一行。这会导致返回的变量返回未定义。我想我需要同步调用其中的一部分,以便在函数返回变量之前分配变量,但我不确定如何为普通函数执行此操作。

编辑:

伪代码就够了。我是 Node 新手,并试图在提问方面做得更好。这是我所在的一个类的应用程序。我用 web.py 用 python 编写了大部分内容,并且由于与 angular.js 框架冲突并在 node.js 中重新编写,我没有太多经验和。我遇到问题的部分是身份验证用户。这是被调用的模块。

以及从数据库获取用户名密码的函数:

我知道这是一种不安全的身份验证方式。我想知道是否有更好的方法来做到这一点。我试图根据密码是否匹配返回一个布尔值。