Loading…

Cassandra – NodeJS

 

Neste post usaremos duas tecnologias discutidas anteriormente, o banco de dados NoSql Cassandra e a plataforma NodeJS para a criação de serviços básicos de inserção, busca, remoção e alteração.

A instalação do Node propriamente dita é relativamente simples e pode ser vista no post anterior, da mesma forma a instalação da Cassandra. Quanto à pacotes, usaremos o node-cassandra-cql (Informações sobre outras funções não discutidas aqui estão disponíveis no link).

Instalação e primeiros passos:

A instalação pode ser feita pelo npm, usando o comando:

Depois de instalado, já dentro do arquivo .js é necessário, em primeiro lugar declarar uma variável node-cassandra-cql:

E à partir dela criaremos a variável cliente, passando as informações necessárias para a conexão com o banco:

Com o cliente criado podemos usar a função client.execute, que tem o formato:

Primeiras funções usando a Cassandra:

Como exemplo, considere uma tabela com o nome tabela3, que tem os campos nome e id, considere também que nessa tabela eu tenha inserido um registro, com nome = ‘1’ e id = 1. Um select nessa tabela pode ser feito da seguinte forma:

Caso você tenha feito tudo corretamente o resultado desse .js será a string “1” no seu console, referente ao id do row[0] da variável result (result.rows[0].id).

Obviamente podemos fazer consultas mais complexas, limitar o que será exibido e graças à ajuda do javascript, simular joins, usando buscas em tabelas diferentes.

Dando log apenas em “result”, teremos informações sobre todos os resultados da busca, mudando o índice de “rows” podemos selecionar linhas individualmente, e por fim, mudando o “.id” podemos acessar outros campos, como “.nome”.

Para queries mais complexas como insert, remove, update ou selects com vários parâmetros é melhor usar uma outra função, que executará a query usando parâmetros guardados em variáveis.

O formato é:

Ao fim do código acima teremos inserido (id = 1, nome = ‘1’) na tabela3.

É possível tambem usar funções do javascript para simplificar tarefas de inserção, alteração e exclusão de registros.

Da mesma forma que fizemos com o PostGre, podemos usar uma variável do tipo “express” para direcionar requisições dos usuários, para mais informações sobre o uso e teste do express, veja o post sobre NodeJS.

Assim, o código “principal” fica como:

Funções de update e delete seguem o mesmo padrão, sendo necessário alterar apenas a variável de query, e em alguns casos usar a funcao parseInt(var) para converter uma string para inteiro.

Temos então as mesmas tabelas de acesso/resposta/teste do post em que usamos o Node com o PostGre, sendo o único diferencial o caminho da url que está sendo usado (Neste caso localhost:3000/table ou localhost:3000/table/:id).

O arquivo de funções completo pode ser escrito da seguinte forma:

 

Autor: Franklin Messias Barbosa