问题标签 [pg-promise]
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 - NodeJS、promise、streams - 处理大型 CSV 文件
我需要构建一个函数来处理用于 bluebird.map() 调用的大型 CSV 文件。鉴于文件的潜在大小,我想使用流式传输。
这个函数应该接受一个流(一个 CSV 文件)和一个函数(处理来自流的块),并在文件被读取结束(已解决)或错误(被拒绝)时返回一个承诺。
所以,我开始:
现在,我有两个相互关联的问题:
- 我需要限制正在处理的实际数据量,以免造成内存压力。
- 作为
processor
参数传递的函数通常是异步的,例如通过基于 promise 的库(现在:)将文件的内容保存到 dbpg-promise
。因此,它将在记忆中创造一个承诺,并不断地继续前进。
该pg-promise
库具有管理此功能的功能,例如page(),但我无法提前说明如何将流事件处理程序与这些 Promise 方法混合使用。现在,我readable
在每个之后的部分的处理程序中返回了一个承诺read()
,这意味着我创建了大量承诺的数据库操作,并最终因为我达到了进程内存限制而出错。
有没有人有一个我可以用作跳跃点的工作示例?
更新:可能不止一种给猫剥皮的方法,但这有效:
有人认为这种方法存在潜在问题吗?
node.js - 如何使用 Node JS 设置 Babel 6 以在我的服务器端代码中使用 ES6?
我已多次阅读提供的文档: Node API Babel 6 Docs
我开始按照 Learn by Example 教程学习 pg-promise,并且更愿意使用 ES6 并使用 Babel 转换为 ES5,但我不确定一些事情:
- 安装 babel-core 后,我使用什么预设以及在哪里/如何配置它以使其工作?
我不清楚我放了哪个文件: require("babel-core").transform("code", options); 该代码的哪些部分是占位符。当我使用该代码时,我是否只在某个地方使用它一次,然后我可以在每个其他文件中使用 ES6?这将如何实现?
我阅读了这个 .babelrc 文件,并想确认实际文件名是“.babelrc”还是只是文件扩展名以及与我的项目的根目录相关的位置,我将该文件放在哪里......以及如何做我链接到它?
如果我正在使用pg-promise,我应该使用 ES6 和 Babel 还是将运行 : npm install 如测试部分中描述的 pg-promise 就足够了,并且尝试使用 ES6 会产生更多问题?
如果在我的服务器端开发过程中出现需要,我希望利用 let 和 const 。
- node+babel+pg-promise 服务器设置是否有标准文件结构?
编辑 值得注意的是,我还阅读了带有 Babel-Node 的 Node JS,并看到应该避免使用它。由于类似的原因,最底部的最终答案对我来说真的没有意义,我在遵循 Babel 提供的实际文档时遇到了麻烦。
json - 将 JSON 插入/更新到 Postgresql 列 WHERE myvar = myval
我正在尝试将 JSON 插入数据类型为 JSON 的 Postgresql 列中,但我无法找到如何执行此操作。据我所知,这是不正确的,因为它只是每次都覆盖它,而不是添加一个新的密钥对。
我正在使用 pg-promise 节点模块来执行这些查询。这是我到目前为止所拥有的:
'myVar' 也应该更新为变量值,而是将其视为字符串。我怎样才能得到 'myVar' 的实际值,而不是按字面意思对待它。
谢谢,
angularjs - 事件触发的 AngularJS 应用程序上的多个发布请求
我正在做一个实时应用程序,在应用程序的一部分中,当触发事件时,一些数据会发布到服务器,然后将其更新到数据库。问题是每个浏览器连接实例都发布相同的数据,从而导致来自实例的多个数据库更新。我似乎看不到解决这个问题的方法。请协助。
javascript - 我应该在哪里初始化 pg-promise
我刚开始学习nodejs-postgres
并找到了pg-promise
包。我阅读了文档和示例,但我不明白应该将初始化代码放在哪里?我使用 Express,我有很多路线。
我必须将整个初始化(包括pg-monitor
初始化)放到我想查询数据库的每个文件中,或者我需要将initalize/configure
它们包含在 server.js 中?
如果我只在 server.js 中初始化它们,我应该在需要数据库查询的地方包含其他文件吗?
换句话说。我不清楚 pg-promise 和 pg-monitorconfiguration/initalization
是全局操作还是本地操作?
还不清楚我是否需要为每个查询创建一个 db 变量并结束 pgp?
pg-promise - pg-promise 在六个查询后挂起
我正在使用 pg-promise 开发一个项目。我尝试使用 pg-promise 查询几种不同的方式,但它们似乎都导致它在 6 次查询后挂起。
在我看来,连接没有被关闭,但我在文档中找不到关于在查询后关闭连接的任何内容。
这就是我所拥有的
我也尝试使用共享连接、对象,但文档建议使用任务。有谁知道这里发生了什么?
javascript - 如何在 Express 中将 pg-promise 的结果返回给我的控制器?
正如我在 RoR(MVC 概念)中所知道的,我的控制器应该从模型中获取结果,并在处理它并渲染视图之后,如下所示:
现在我有一个 Express 服务器,我尝试使用 PostgreSQL(pg-promise) 和 jam 以 MVC 方式构建它。
目前,我有一个控制器文件,其代码如下:
在我的模型中,我有一个 all 函数来处理它:
但我想要做的是将 Movies.all 的数据库查询结果返回到我的控制器,就像我们在 RoR 通常或典型的 MVC 方式中所做的那样。我想事情会是这样的:
但是因为这将返回一个承诺或由 Async 引起(我不确定),所以我无法实现它,我该怎么办?
node.js - Postgresql中带有json数组的参数化查询
我想使用参数化查询将 array_prepend 调用到 json[] 中。我正在使用 pg-promise npm 包,但这在引擎盖下使用了普通的 node-postgres 适配器。
我的查询是:
与“$ 1”相同。
它适用于非参数化查询。
上面的代码产生:
{ [错误:“hiya”处或附近的语法错误]
这样做的主要原因是为了避免 sql 注入(文档说它们在使用参数化查询时充分转义)。
node.js - Node JS Soap 服务器(node-soap)从 postgres 回调传递值
我有一个问题,我正在使用 node-soap 和 pg-promise。我有一个问题,当我向soap服务发出请求时,响应会延迟,换句话说,我必须在响应返回之前发送两次请求(使用soap ui):
我想知道我是否没有将数据库调用的响应正确传递给节点肥皂回调:
以下是来自 node-soap 网站的示例代码:
这是我的代码:
每次我在 SOAPUI 中发出请求时,我的所有 console.log() 都会显示返回的数据,但直到我第二次发送请求时才返回响应:
例如
点击按钮一次:vin = 12312364812736498
我希望 John doe 信息返回 - console.log(John doe's info) SOAP RESPONSE = empty
点击按钮两次 console.log(John doe's info) SOAP RESPONSE = John doe's info
如果我使用提供的肥皂客户端示例代码并发出请求:
console.log 每次都有效:
我是否有 global.results 值具有竞争条件的范围问题???
我很确定我的代码可能有问题,因为我是 Node JS 等的新手......
我是否错误地传递给了肥皂服务器的回调?
任何见解将不胜感激。
javascript - 如何使用 pg-promise 一次从多个查询中获取结果?
目前我有以下代码来获取两个查询的结果
不知何故,我认为这是不对的。如果我需要在返回回调之前获取许多查询的结果怎么办?几个 then/catch 的嵌套变得可怕。目标是在呈现页面之前准备好所有数据(在 Express 中)