For anyone interested in node.js and oracle, this is a very quick example of publishing the emp table over REST for use by anyone that would prefer REST over sql*net. For example from javascript,php,perl,...
The current best driver for node.js to access oracle is node-oracle which is found here: https://github.com/joeferner/node-oracle
Here's a short set of steps to get going.
1. Install node, http://nodejs.org/download/
2. Setup the environment's oracle variables
export PATH=$PATH:. export ORACLE_HOME=/path/to/my/oracle/product/11.2.0/dbhome_1 export OCI_LIB_DIR=$ORACLE_HOME/lib export OCI_INCLUDE_DIR=$ORACLE_HOME/rdbms/public export OCI_VERSION=11 #Integer. Optional, defaults to '11' export NLS_LANG=.UTF8 # Optional, but required to support international characters export LD_LIBRARY_PATH=$ORACLE_HOME/lib3. run npm install oracle
That's all there is to getting then env setup for oracle. The other node package I use in this example is express.
4. To install that just type: npm install express To learn more about express, it's home is here http://expressjs.com/
var express = require('express'); var app = express(); // This make a uri end point for the REST call // http://myhost/emp will return the data app.get('/emp', function(req, res){ empList(req,res) } ); var oracle = require('oracle'); var conn; var connectData = { hostname: "127.0.0.1", port: 1521, database: "XE", user: "klrice", password: "fortim" } // connect //var conn=""; oracle.connect(connectData, function(err, connection) { if (err) { console.log("Error connecting to db:", err); return; } console.log('connected'); conn =connection; }); // function registered in the /emp declaration function empList(req,res){ var empList = "select * from emp "; conn.execute(empList, [], function(err, results) { if (err) { console.log("Error executing query:", err); return; } // use the JSON function to format the results and print res.write(JSON.stringify(results)); res.end(); }); } // listen on port 8000 app.listen(8000);
The result is that the node script is listening on port 8000 for /emp and will return this JSON.