栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用node.js postgresql模块的正确方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用node.js postgresql模块的正确方法是什么?

我是node-postgres的作者。首先,我很抱歉文档未能阐明正确的选项:这是我的错。我会尝试改善它。我刚才写了一份Gist来解释这一点,因为对话对于Twitter来说时间太长了。

使用

pg.connect
是在Web环境中使用 的方式

PostgreSQL服务器每次连接一次只能处理1个查询。这意味着如果您有1个全局

newpg.Client()
连接到后端,则基于postgres响应查询的速度,整个应用程序将成为瓶颈。它实际上将所有内容排列在一起,对每个查询进行排队。是的,它是异步的,所以没关系…但是您不是将吞吐量乘以10倍吗?使用
pg.connect

将设置
pg.defaults.poolSize
为合理(我们进行25-100次,尚不确定正确的数字)。

new pg.Client
当您知道自己在做什么时。当出于某种原因需要单个长期存在的客户端,或者需要非常仔细地控制生命周期时。一个很好的例子是使用
LISTEN/NOTIFY
。侦听客户端需要在周围并且连接并且不共享,以便它可以正确处理
NOTIFY
消息。另一个示例是在打开1-off客户端以杀死某些挂起的东西或在命令行脚本中时。

一件事很有帮助,就是将对应用程序中数据库的所有访问集中到一个文件中。

pg.connect
在整个过程中,请勿乱扔电话或新客户。有一个像
db.js
这样的文件:

module.exports = {   query: function(text, values, cb) {      pg.connect(function(err, client, done) {        client.query(text, values, function(err, result) {          done();          cb(err, result);        })      });   }}

这样,您可以将实现从

pg.connect
更改为自定义客户端池或任何其他内容,而只需要在一处更改。

看一下执行此操作的node-pg-query模块。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号