Connect Local NodeJS Application to a Docker Oracle Database

Viewed 37

I'm Trying to connect my local NodeJS application to my Oracle database which is in a Docker container. Here is my index.js

const express = require('express');
const oracledb = require('oracledb');
const app = express();

oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;

async function conexion(){
    let conexion;

    try{
        conexion = await oracledb.getConnection({
            user                :"myuser",
            password            :"123456",
            connectString       :"172.17.0.2/ORCLCDB" //this is the IP of the docker container
        });

        const data = await conexion.execute(
            'SELECT * FROM Pais',
        );
        console.log(data.rows);
    } catch(err){
        console.error(err);
    }
}

app.use(express.json());


var port = process.env.PORT || 8080 
conexion();

app.listen(port)
console.log('API escuchando en el puerto ' + port)

But I get this error when running my NodeJS app:


API escuchando en el puerto 8080
Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/node-oracledb/INSTALL.html for help
Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
You must have 64-bit Oracle Client libraries configured with ldconfig, or in LD_LIBRARY_PATH.
If you do not have Oracle Database on this computer, then install the Instant Client Basic or Basic Light package from 
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async conexion (/home/pedrocastro/Universidad/2S-2022/BASES1/Proyecto1_API/index.js:11:20) {
  errorNum: 0,
  offset: 0
}

How can I solve this??

0 Answers
Related