Async non blocking connector from Node.js to PostgreSQL via libpq. N-API AsyncWorker class used.
It is my own implementation, based on my own requirements.
- Fast.
- Simple.
- Minimal code size. Aprox 100 lines of c++ code.
Implemented 2 basic calls. PQexec() & PQexecParams() from libpq
.
This calls cover over 99% cases and requirements(my own).
A tutorial, describing this project, can be found at the N-API Resource.
Requirements:
- Installed Nodejs. May be with dev headers.
- Working
node-gyp
andnpm
tools. - Working
libpq
library from PostgreSQL. -
libpq
use login/password/database name environment variables. - PostgreSQL's connection string NOT used. No plain text login/pass stored.
- You should customize
./test/Test.js
for meet yours environment. - Connector accept ONLY strings. Returns strings. Remember, always pass strings. For example not
5
, but'5'
export PGUSER=username
export PGHOST=x.x.x.x
export PGPASSWORD=password
export PGDATABASE=dbname
export PGPORT=xxxx
To build and run this program on your system, clone it to your computer and run these two commands inside your clone:
npm install
npm test
Usage:
How to use, see ./test/Test.js
. Connector returns 3 things. ntuples
(row count), nfields
(fields count). Returned data implemented
as key-value Object properties, key is int
. For example, sql_result[0] = '123456'; sql_result[1] = 'test data';
This is loop-optimized.
If blob data returned (picture or other binary data), it encoded/escaped via PostgreSQL server, not connector. Connector simple pass As-Is.