
Conectando Nodejs con Oracle y construyendo una API REST
En este blog, aprenderemos cómo crear una API REST con node.js y Oracle.
Los siguientes softwares deben estar instalados en su máquina:
- Nodejs
- servidor SQL
Configuración de npm para el proyecto:
Primero instale las dependencias de nodos. Abra el terminal y escriba el siguiente comando:
npm init

Ahora necesitamos instalar express y oracle.
Escriba los siguientes comandos:
npm install express -s
npm install oracledb –s
![]()

Ahora abra el proyecto en código Vs y abra package.json y escriba el script para ejecutar el proyecto.

Ahora todos los paquetes y la configuración están instalados para ejecutar el proyecto.
Ahora cree la database de la carpeta, haga clic con el botón derecho en la database del nombre de la carpeta y seleccione Add -> New File… (dbConnection.js).
const oracledb = require('oracledb'); // hr schema password var password = '<PASSWORD>' // checkConnection asycn function async function checkConnection() { try { connection = await oracledb.getConnection({ user: "hr", password: password, connectString: "localhost:1521/xepdb1" }); console.log('connected to database'); } catch (err) { console.error(err.message); } finally { if (connection) { try { // Always close connections await connection.close(); console.log('close connection success'); } catch (err) { console.error(err.message); } } } } checkConnection();
Ejecute su aplicación de nodo:
node checkConnection.js
Debe ver esto en su consola:
connected to database close connection success
Consiga a todos los empleados
Nuestro primer punto final de la API REST enviará a todos los empleados de la tabla de empleados:
const express = require('express')
const oracledb = require('oracledb');
const app = express();
const port = 3000;
var password = '<PASSWORD>';
async function selectAllEmployees(req, res) {
try {
connection = await oracledb.getConnection({
user: "hr",
password: password,
connectString: "localhost:1521/xepdb1"
});
console.log('connected to database');
// run query to get all employees
result = await connection.execute(`SELECT * FROM employees`);
} catch (err) {
//send error message
return res.send(err.message);
} finally {
if (connection) {
try {
// Always close connections
await connection.close();
console.log('close connection success');
} catch (err) {
console.error(err.message);
}
}
if (result.rows.length == 0) {
//query return zero employees
return res.send('query send no rows');
} else {
//send all employees
return res.send(result.rows);
}
}
}
//get /employess
app.get('/employees', function (req, res) {
selectAllEmployees(req, res);
})
app.listen(port, () => console.log("nodeOracleRestApi app listening on port %s!", port))
Obtenga un empleado con el parámetro id
El segundo punto final de la API REST enviará un empleado de la tabla de empleados con el parámetro id:
const express = require('express')
const oracledb = require('oracledb');
const app = express();
const port = 3000;
var password = '<PASSWORD>';
async function selectEmployeesById(req, res, id) {
try {
connection = await oracledb.getConnection({
user: "hr",
password: password,
connectString: "localhost:1521/xepdb1"
});
// run query to get employee with employee_id
result = await connection.execute(`SELECT * FROM employees where
employee_id=:id`, [id]);
} catch (err) {
//send error message
return res.send(err.message);
} finally {
if (connection) {
try {
// Always close connections
await connection.close();
} catch (err) {
return console.error(err.message);
}
}
if (result.rows.length == 0) {
//query return zero employees
return res.send('query send no rows');
} else {
//send all employees
return res.send(result.rows);
}
}
}
//get /employee?id=<id employee>
app.get('/employee', function (req, res) {
//get query param ?id
let id = req.query.id;
// id param if it is number
if (isNaN(id)) {
res.send('Query param id is not number')
return
}
selectEmployeesById(req, res, id);
})
app.listen(port, () => console.log("nodeOracleRestApi app listening on port %s!", port))
Ejecute su código:
node index.js
Ahora presione el punto final de la API REST desde un navegador http://localhost:3000/employee and http://localhost:3000/employee?id=1 y verá el employee con employee_id=1.
Conclusión
Esta fue una aplicación de API REST de muestra que se conecta a Oracle con Node.js y acepta dos solicitudes http GET separadas:
- Buscar a todos los empleados
- Buscar un empleado con id = <employee_id>
- GET / employee? Id = <employee_id>




