自己实现PostgresQL的nodejs驱动,分享给大家

本文介绍了作者根据libpg C驱动开发的Node.js PostgreSQL驱动,详细讨论了开发过程中的难点、功能特性,如连接池、数据类型转换等。提供了环境准备和编译指南,并给出了DEMO示例。目前驱动支持的功能包括类MongoDB的查询操作,未来将持续维护和添加新功能。
摘要由CSDN通过智能技术生成

PostgresQL性能上不输Mysql,而且支持很多高级特性,于是我写了这个项目,根据libpg的c驱动,封装了这个nodejs驱动。

项目地址:

git clone https://code.csdn.net/limite_god/pgsql.git

开发难点、待实现功能、特性

1、nodejs的v0.12.0开始,api有了不少变化,熟悉这些变化用来不少时间;

2、libpg-c的api的熟悉,全英文的,得一行行认真看;

3、makefile,这里面的知识杂而细,只写了个linux下编译的;

4、libpg的executeParam方法暂未实现,所以添加了escape的连接池,专门用来处理escape;

5、数据类型支持,现在只对libpg的int4及int8做了转换,其它格式会返回字符串(比如日期);

6、连接池使用了nodejs的EventEmitter实现,sql命令会在压力较大的时候进行排队,这一块策略非常重要,涉及了nodejs的核心思想,尽量发挥慢速资源的最大性能,Pool.js,大家可以细看;

7、Database对象cmPool和trPool、esPool,cm处理无需声明事务的sql,tr用来专门执行事务连接,es专门用来escape字符串;

8、api尽量做到给调用者最大的自由,协调资源交给驱动。

9、很多地方注释缺少,等待以后添加;

10、table实现了类mongodb的find,update,remove,save,都可以传递options参数,options参数暂时只支持4个key,ret,sort,limit,offset;

11、我会持续对项目进行维护,添加更多功能,有建议请留言。


环境准备

操作系统centos6+,安装nodejs版本v0.12.0+,postgresql版本9.4.1

需要说明的是,nodejs和postgresql都需要从源码安装,postgress的安装目录采用默认目录,/usr/local/pgsql/,如果你的目录不同,请修改项目跟目录下的makefile


下载代码并编译

模块并没有在官方模块中注册,所以最好在你的nodejs程序的node_modules目录下执行

git clone https://code.csdn.net/limite_god/pgsql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值