问题标签 [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.
node.js - node-postgres UTF 密码错误
我正在使用https://github.com/brianc/node-postgres pg
模块。显然我不能使用 Unicode 密码连接到数据库。psql
从具有连接参数的同一位置可以正常工作。使用 Node.js,它给出了 ne password authentication failed for user
。当我检查时,console.log()
我确切地看到了我的期望。如果我在数据库和连接字符串中都将密码更改为 ASCII,一切正常。但我需要使用旧的 Unicode 密码......
我尝试了两个https://github.com/brianc/node-postgres/wiki/Client
new pg.Client({...password: Código
和
conString = "postgres://...Código@"
我知道 ODBC ( Driver={PostgreSQL UNICODE};
) 和 JDBC ( ;Unicode=true
) 在连接字符串中都支持 UTF。我在 Node.jspg
模块 UTF 支持上一无所获。
请帮忙。
我看到了http://www.connectionstrings.com/postgresql/并阅读了https://github.com/brianc/node-postgres上的文档。请帮忙解答这个问题。
谢谢!
json - 在应用程序中发出 GET 请求时 ECONNREFUSED,但 API 成功返回 JSON
我正在用 React 编写一个节点应用程序,使用 node-postgres 和 superagent 进行后端调用。假设我正在发出 GET 请求并使用它返回的 JSON 来填充学生表。我的 API 如下所示:
在页面加载时,从存储中调用它来设置一个学生数组。这里似乎出了点问题:
如果我 curl localhost:3000/api/getStudents
,我会得到我期望的 JSON 响应。
但是,当我在页面加载时调用它时,我收到一个 ECONNREFUSED 错误:
不知道为什么我在 HTTP 端口上收到错误。这是我第一次使用 node-postgres、superagent 和 React,因此非常感谢任何帮助。
编辑:忘了提到我能够发出 POST 请求并将项目插入数据库而没有任何错误。此错误仅在我尝试 GET 请求时发生。
node.js - 使用 node-postgres 查询 postgres db
每次查询数据库时都需要使用 pg.connect() 吗?查看 githhub 页面和 wiki 后,示例显示 pg.connect 回调中的查询,如下所示(评论来自 github 示例,我没有写)
这些评论令人困惑,因为听起来 pg.connect() 正在为每个调用创建一个新的客户端池,这显然是低效的。我在文档中看到了创建客户端的其他示例,但我想使用客户端池。
node.js - From express + pg to reusable code : help refactoring
So, I have some node code to deal with and I’m hoping someone here can help me refactor it. This is express + pg:
I want to extract the part that runs the query, that is, basically everything inside the express controller action. Except of course, nested inside the callbacks, is express code. How would you refactor this?
node.js - AWS Lambda 上的节点函数无法使用 node-pg 连接到数据库
我的函数在本地工作,但是当我部署到 AWS Lambda 时,它似乎无法连接到我的 postgres 数据库。这是错误:
我的数据库托管在 Azure 虚拟机上,在本地运行时从任何其他应用程序或此应用程序连接到它都没有问题。在 Lambda 上运行时可能导致连接失败的原因是什么?
sql - 此套接字已被对方结束] code: 'EPIPE'
我在某些操作后收到此错误,例如,在成功插入后约 10 秒内:
意思是,我第一次插入它时很好,但是当我试图插入其他东西,或检索数据或......等时 - 我收到了这个错误。
空闲后不会发生。只是经过一些动作。有时在检索后,总是在插入后。
插入查询示例:
这是相同的查询,我对其进行了一些格式化以使其更易于阅读:
node.js - 我什么时候应该在 node-postgres 中调用 done()?
第 4.4.3 页
我正在使用 socket.io 将客户端连接到服务器。我猜到了,我想在服务器启动时将服务器连接到数据库,但是 pg "docs" 中有很多警告:'use done() or bad things will occur'。
我应该什么时候使用它?如果我打开与数据库的连接,然后在其中创建 socket.io 服务器,然后done()
在每次查询后使用,那么在空闲 30 秒后我收到错误:
Error: This socket has been ended by the other party
可能我应该创建 socket.io 然后打开到每个用户会话中的数据库?或者如果当前未打开,则在每个查询上打开与 db 的连接?老实说,我不明白,我为什么要这样做,为什么我不能在服务器启动时创建到数据库的单个连接并通过它发送所有查询,而不是这种打开-关闭重复。
node.js - 从 Postgres 以字符串形式返回的枚举类型数组
给定一个自定义枚举:
CREATE TYPE vehicle AS ENUM ('car', 'truck', 'bicycle');
像这样的表:
当从我们的节点应用程序中查询时,如下所示:
SELECT * FROM vehicle_events;
这将返回一个 json 结构,如下所示:
[{"timestamp": "January, 06 2016 23:04:56", "labels": "{'car'}", "mentions": [1,2,3,4]}]
我的问题真的是,为什么标签数组作为字符串返回(还要注意基本类型的提及数组不是)?这是因为它是一个数组ENUM
吗?如果是这样,我怎样才能将其强制为常规数组?为什么 postgres 以这种方式返回它?
sqlfiddle 链接:http ://sqlfiddle.com/#!15/637ce/1
javascript - Node-postgres 将新记录插入我的数据库不会返回新条目的数据
这是执行查询的路径:
问题是我试图从第二个控制台中引用的“结果”值基本上是空白的:
result.rows 不应该包含一个数组,该数组包含一个代表我刚刚在数据库中创建的行的对象吗?
javascript - 如何使用 node-postgres 将多行正确插入 PG?
可以像这样插入单行:
这种方法会自动注释掉任何特殊字符。
如何一次插入多行?
我需要实现这个:
我可以使用 js 字符串运算符手动编译这些行,但是我需要以某种方式添加特殊字符转义。