Connessione a Oracle con Node.js ed Express
Oggi ho fatto un piccolo esperimento: connettermi ad un db Oracle con Node.js ed Express.
E devo dire che ha funzionato abbastanza bene; una delle cose migliori è che non richiede una connessione ODBC pre-impostata (cosa che succede con diversi driver in altri linguaggi).
Cominciamo con le dipendenze del nostro package.json:
{
.....
"dependencies": {
"express": "~4.16.1",
"oracledb": "*"
}
}
Come vedete abbiamo appunto solo Express e oracledb.
Questo un primo esempio (molto easy, giusto per vedere se effettivamente funziona tutto):
const express = require('express');
const app = express();
const oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
app.get('/', function (req, res) {
res.send('Hello World!');
run();
});
async function run() {
let connection;
try {
connection = await oracledb.getConnection( {
user : "user",
password : "pwd",
connectString : "host/db"
});
const result = await connection.execute(
`SELECT * FROM anag_conti`,
);
console.log(result.rows);
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
app.listen(3000, function () {
console.log('App listening on port 3000!');
});
Dovreste vedere apparire i records in formato JSON nella console.
Qui sotto un altro esempio in cui passiamo due parametri alla query:
const express = require('express');
const app = express();
const oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
app.get('/', function (req, res) {
res.send('Hello World!');
run();
});
async function run() {
let connection;
try {
connection = await oracledb.getConnection( {
user : "user",
password : "pwd",
connectString : "host/db"
});
const result = await connection.execute(
`SELECT * FROM anag_conti WHERE ditagenda = :ditagenda AND fvl = ' ' AND conto = :conto`,
['XXL', 'CL00100010']
);
console.log(result.rows);
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
app.listen(3000, function () {
console.log('App listening on port 3000!');
});
Enjoy!
javascript nodejs express oracle node-oracledb
Commentami!