Série Node.js: Conectando ao Oracle DB

Oi!

[English Version]

Esta é a parte 4 da minha série Node.js, veja os posts anteriores e deixe-me saber o que você pensa!

Então, sabíamos que chegaria a esse ponto, conexão com o Oracle DB. Primeiro de tudo, funciona, então o que eu vou fazer aqui é que a primeira parte do post falarei como você faz isso, a segunda parte é a minha experiência geral e o que você deve esperar de seus próximos passos. Vamos lá:

Adquirindo as ferramentas

A Oracle fornece a você um módulo de código semi aberto para sua conexão aqui . E funciona para o Node 6, 8 e 10, portanto, verifique sua instalação primeiro. Eu usei com o Node.JS versão 10.7.0 e funcionou bem.

O processo de instalação é um pouco complicado, mas está bem documentado na sua página github. Tenha em mente que a ferramenta exige a instalação de bibliotecas do cliente Oracle em seu computador que executará o código, portanto, esteja avisado que um simples npm i oracledb não funcionará!

Então aqui está o meu código de exemplo:


var oracledb = require('oracledb');

oracledb.getConnection(
  {
    user          : "usr",
    password      : "pwd",
    connectString : "host:port/orcl"
  },
  function(err, connection) {
    if (err) {
      console.error(err.message);
      return;
    }
    connection.execute(
      `SELECT *
       FROM dual`,
      [],  
      function(err, result) {
        if (err) {
          console.error(err.message);
          doRelease(connection);
          return;
        }
        console.log(result.rows);
        doRelease(connection);
      });
  });

function doRelease(connection) {
  connection.close(
    function(err) {
      if (err)
        console.error(err.message);
    });
}


Este código é basicamente uma cópia do código que pode ser encontrado em sua página github, como você pode ver, há muito espaço para melhorias na transformação deste código em componentes, então tenha isso em mente ao construir sua versão pronta para produção.

O código acima não funcionou na primeira vez, e eu tomei um erro:

ORA-24454: client host name is not set

Tudo o que você precisa fazer é executar isso no seu console Linux:

sudo /bin/bash -c "echo '127.0.1.1 ${HOSTNAME}' >> /etc/hosts"

Então, sim, isso foi tudo que eu tive que fazer para conectar ao Oracle DB.

Funciona, MAS…

Eu acho que esta solução está incompleta. Como prometido, essa é a segunda parte com minha opinião pessoal sobre ela.

Estamos agora vivendo em um ambiente em que a alta tendência é nem mesmo conhecer a máquina em que seu código está sendo executado, portanto, oferecer uma solução que precise de configuração de máquina local para conectar é, no mínimo, questionável. Eu pensei que nós tínhamos resolvido isso quando os thin clients JDBC nasceram. A maioria dos clientes Node.js está planejando, se já não implantou suas primeiras versões em provedores de nuvem serverless, eu acredito que esta estratégia deva ser revista.

Minha recomendação pessoal aqui é que você, caso ainda não tenha feito, deva começar a planejar o uso de bancos de dados intermediários NoSQL como MongoDB em vez de ir direto para o banco de dados SQL. Há um monte de vantagens no desempenho e até mesmo nos domínios de segurança para esta estratégia que podemos até mesmo falar em um futuro post.

Ainda há muito o que falar sobre o Node.js e coisas novas estão chegando todos os dias, por favor, siga-me no twitter @vrsbrazil para acompanhar esta série e mais.

Obrigado!

Advertisements

One thought on “Série Node.js: Conectando ao Oracle DB”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s