A node.js native client for IBM Informix
npm install informixnode-informix
=============







A node.js native client for IBM Informix.
* Developer friendly ES6 Promise based API
* Transparent connections with lazy connect
* Connection pooling
* Prepared Statements
* Transaction contexts
* Linux, Mac OSX and Windows (experimental) compatibility
* IBM Informix ESQL/C which
can be installed using IBM Informix CSDK.
* INFORMIXDIR -
(e.g. INFORMIXDIR=/opt/informix)
* INFORMIXSERVER -
(e.g. INFORMIXSERVER=ol_informix1210)
* INFORMIXSQLHOSTS
* PATH to include ${INFORMIXDIR}/bin - (e.g. export PATH="${INFORMIXDIR}/bin:${PATH}")
* LD_LIBRARY_PATH to include ESQL/C shared libraries -
(e.g. export LD_LIBRARY_PATH="${INFORMIXDIR}/lib:${INFORMIXDIR}/lib/esql:${LD_LIBRARY_PATH}")
You'll need to patch ${INFORMIXDIR}/bin/esql on Debian based systems.
e.g.
`` bash`
$ cat esql-4.10.debian.patch | patch ${INFORMIXDIR}/bin/esql
` bash`
$ npm install --save informix
`js
var opts = {
database : 'test@ol_informix1210',
username : 'rockstar',
password : 'secret'
};
var informix = require( 'informix' )( opts );
`
`js`
var Informix = require( 'informix' ).Informix;
var informix = new Informix( { database : 'test@ol_informix1210' } );
`js`
informix
.query( "select tabname from systables where tabname like 'sys%auth';" )
.then( function ( cursor ) {
return cursor.fetchAll( { close : true } );
} )
.then( function ( results ) {
console.log( 'results:', results );
} )
.catch( function ( err ) {
console.log( err );
} );
`js
var ctx = informix.createContext();
ctx.begin()
.then( function () {
return ctx.query( "insert into tcustomers( fname, lname ) values( 'John', 'Smith' );" );
} )
.then( function ( cursor ) {
console.log( 'id:', cursor.serial() );
return cursor.close();
} )
.then( function () {
return ctx.commit();
} )
.then( function () {
return ctx.end();
} )
.catch( function ( err ) {
console.log( err );
} );
``
JSDoc generated API documentation can be found at http://nukedzn.github.io/node-informix/docs/.
Contributions are welcome through GitHub pull requests (using fork & pull model).