{"id":27370183,"url":"https://github.com/datastaxdevs/workshop-cassandra-driver-nodejs-portugues","last_synced_at":"2025-09-04T00:44:42.373Z","repository":{"id":104796000,"uuid":"470229351","full_name":"datastaxdevs/workshop-cassandra-driver-nodejs-portugues","owner":"datastaxdevs","description":"Portuguese version of the Cassandra driver javascript node.js workshop","archived":false,"fork":false,"pushed_at":"2022-10-06T18:48:06.000Z","size":7132,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-13T08:57:10.389Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datastaxdevs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-15T15:50:39.000Z","updated_at":"2022-03-17T22:43:41.000Z","dependencies_parsed_at":"2023-05-29T22:45:43.127Z","dependency_job_id":null,"html_url":"https://github.com/datastaxdevs/workshop-cassandra-driver-nodejs-portugues","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/datastaxdevs/workshop-cassandra-driver-nodejs-portugues","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datastaxdevs","download_url":"https://codeload.github.com/datastaxdevs/workshop-cassandra-driver-nodejs-portugues/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273534470,"owners_count":25122677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-13T08:48:14.098Z","updated_at":"2025-09-04T00:44:42.365Z","avatar_url":"https://github.com/datastaxdevs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Versão em Português do workshop Cassandra driver javascript node.js\n\nOlá e bem-vindo!\n\nEste é o repositório complementar para a apresentação prática dos drivers Cassandra em Javascript / Node.js.\n\nNeste repositório você encontrará todos os trechos de código para você praticar e acompanhar.\n\n\u003e Além disso também disponibilizamos instruções para repetir a prática por conta própria!\n\nVocê concluirá esta prática com uma boa compreensão do que pode fazer,\ne como, com os drivers Node.js para Apache Cassandra™.\n\n## Documentação oficial\nNode.js driver\n- [https://docs.datastax.com/en/developer/nodejs-driver/4.6/](https://docs.datastax.com/en/developer/nodejs-driver/4.6/)\n\n## Requisitos\nPara praticar você precisa:\n\n- internet (*o banco de dados Apache Cassandra usado aqui está na nuvem*)\n-  o Node.js LTS (ou superior) https://nodejs.org/en/\n\n**Nota**: crie sua instância do Apache Cassandra chamado **AstraDB** \nde graça. https://astra.datastax.com/\n\u003e Você ganha $25 todo mês em créditos (isso dá até 80GB por mês **na faixa**)\n\n## 1. Configurando o ambiente\n\n\u003e Sugestão: use o Linux, Mac ou WSL/Windows\n\nComeçamos com a instalação básica dos componentes:\n\n```shell\nmkdir code-pt-br\n```\n```shell\ncd code-pt-br\n```\n```shell\nnpm init -y\n```\n```shell\nnpm i cassandra-driver dotenv\n```\n```shell\ntouch index.js\n```\n```shell\necho \"console.log('Vamos começar')\" \u003e index.js\n```\n```shell\nnode index.js\n```\n\n\u003e Se o terminal mostrou **Vamos começar** você está pronta para continuar!\n\nNota: vamos usar a versão `\"type\": \"module\"` no package.json\n\n## 2. Passo a passo para criar a infraestrutura\n\nO AstraDB é a maneira mais simples de executar o Cassandra com zero instalações - basta apertar o botão e obter seu cluster. \nNão é necessário cartão de crédito, e você ganha crédito de US$ 25,00 todos os meses. Isso é aproximadamente:\n- 5 milhões de gravações, \n- 30 milhões de leituras, \n- 40 GB de armazenamento mensal\n\n### Site\n✅ Acesse o seu banco de dados em [https://astra.datastax.com](https://astra.datastax.com/)\n\n- Você pode logar com seu `Github`, `Google` ao invés de criar mais uma combinação `email e senha`.\n\n\u003cdetails\u003e\n    \u003csummary\u003eSe for sua primeira vez acessando o site, clique aqui\u003c/summary\u003e\n    \u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 13.20.01.png\" /\u003e\n    \u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 13.20.09.png\" /\u003e\n    \u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 13.20.59.png\" /\u003e\n\u003c/details\u003e\n\n### O banco\n\u003e **A interface em https://astra.datastax.com está em Inglês**. Vamos lá:\n\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 13.21.07.png\" /\u003e\n\n- ✅ Clique em um dos botões que com **CREATE DATABASE** ou **CREATE SERVERLESS DATABASE** (ambos são equivalentes)\n- ✅ Vamos dar nomes\n  - DATABASE NAME: `workshop` \n  - KEYSPACE NAME: `demo`\n\u003e Sugiro escolher `NORTH AMERICA` e depois `MONCKS CORNER (us-east1)`\n  - ✅ Clique no botão bem a direita **CREATE DATABASE**\n\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 13.22.43.png\" /\u003e\n\n#### Nota\n⚠️ Como usuário do plano FREE, você pode usar **GCP** e **qualquer Area ou Região que esteja destravada**\n\n- Se você quiser **GCP** \u003e `SOUTH AMERICA` \u003e `SAO PAULO (southamerica-east1)`, sugiro cadastrar o cartão de crédito\n- Se você quiser **AWS** ou **AZURE** \u003e `*qualquer região*` \u003e `*qualquer área*`, sugiro cadastrar o cartão de crédito\n\n### O banco de dados já está ativo?\nVocê verá seu novo banco de dados pendente no Painel.\n\nO status mudará para Ativo quando o banco de dados estiver pronto.\n\nVocê também receberá um e-mail com essa notificação.\n\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 14.03.00.png\" /\u003e\n\n## 🥳 Credenciais para conectar ao banco de dados\n\nVamos agora expor variaveis de ambiente para conectar ao banco de dados.\n\n### ✅ Clique em \"CONNECT\" no canto superior direito (imagem)\n\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 14.48.34.png\" /\u003e\n\n### 🚧 Selecione Node.JS no menu lateral\n\nAqui é um momento chave onde você precisa ir para a página de criação de token e download das credenciais.\n\n- Primeiro clique em **DOWNLOAD BUNDLE**\n- Em seguida clique no link com a palavra **HERE** (indicado na imagem)\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 15.35.42.png\" /\u003e\n\n### Gere um token como Administrador\n\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 14.52.45.png\" /\u003e\n\n### ✅ Clique em \"DOWNLOAD TOKEN DETAILS\"\n\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 14.53.29.png\" /\u003e\n\n\u003e **⚠️ Important**\n\u003e ```\n\u003e The instructor will show you on screen how to create a token \n\u003e but will have to destroy to token immediately for security reasons.\n\u003e ```\n\n# 🇧🇷 Conectar ao banco de dados com Javascript\n\nInsira os segredos e credenciais baixados até agora no seu `.env`. \n\nSugestão de como inserir (esses valores são exemplos):\n \n```shell\ntouch .env\necho \"SECURE_CONNECT_BUNDLE=secure-connect-workshop.zip\" \u003e\u003e .env\necho \"ASTRA_DB_CLIENT_ID=RAwfLeZORZoPnSUYQSgbnhEX\" \u003e\u003e .env\necho \"ASTRA_DB_CLIENT_SECRET=XjvJawKpp2iyRZJGDmGFLCc+jvDpRi,MNAs4se5Glj0qhhDm4TBsl7x71vMcexNm8aubaND0pj,zCLOP59JZ2FPh1gT+mIJzCtOx6ZB0ocgSZJ-9bbZfvn-yP5ht85b0\" \u003e\u003e .env\n```\n\nVamos testar?\n\n```shell\necho \"require('dotenv').config(); \\n console.log(process.env.SECURE_CONNECT_BUNDLE)\" \u003e\u003e index.js\nnode index.js\n```\n\nO resultado deve ser\n\n```\nVamos começar\nsecure-connect-workshop.zip\n```\n\n# Criar a primeira tabela\n\nRecaptitulando, nosso `package.json` deve estar assim:\n````json\n{\n  \"name\": \"workshop-cassandra-pt-br\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Apresentação sobre Cassandra usando drivers\",\n  \"main\": \"index.js\",\n  \"type\": \"module\",\n  \"keywords\": [],\n  \"author\": \"Daniel S\u003ciam@w-b.dev\u003e\",\n  \"license\": \"Apache\",\n  \"dependencies\": {\n    \"cassandra-driver\": \"^4.6.3\",\n    \"dotenv\": \"^16.0.0\",\n    \"express\": \"^4.17.3\"\n  },\n  \"devDependencies\": {\n    \"prettier\": \"^2.5.1\"\n  }\n}\n````\n\nVamos apagar tudo do `ìndex.js` e substituir com\n\n```js\nimport dotenv from \"dotenv\"; // permite acessar process.env via .env\nimport { Client } from \"cassandra-driver\"; // 🤩 a estrela de hoje\n\ndotenv.config(); // inicializa o pacote\n\n/* Configurações do banco de dados na nuvem, AstraDB */\nconst cassandraConfig = {\n  cloud: {\n    secureConnectBundle: process.env.SECURE_CONNECT_BUNDLE,\n  },\n  credentials: {\n    username: process.env.ASTRA_DB_CLIENT_ID,\n    password: process.env.ASTRA_DB_CLIENT_SECRET,\n  },\n  keyspace: \"demo\",\n};\n\nconst clienteCassandra = new Client(cassandraConfig); // inicializa o cliente\n\n/* Essa é a função principal da aplicação neste workshop */\nconst consultarBancoDeDados = async () =\u003e {\n  await clienteCassandra.connect(); // aguarda a conexão ao banco\n  const consultaCQL = `SELECT * FROM system.local`; // 1a consulta CQL do dia\n  // a próxima linha aguarda a execução da consulta\n  const respostaConsulta = await clienteCassandra.execute(consultaCQL);\n  await clienteCassandra.shutdown(); // desconecta ao banco\n  return respostaConsulta;\n};\n\nconst resultadoFinal = await consultarBancoDeDados();\nconsole.log(resultadoFinal);\n```\n\nVamos testar?\n````shell\nnode index.js\n````\nO resultado dever ser\n````\nResultSet {\n  info: {\n    queriedHost: '172.25.140.4:9042',\n    triedHosts: { '172.25.140.4:9042': null },\n...\n````\n\n### Criando dados para o nosso dominio\n\nOs dados aqui são meramente ilustrativos do melhor time de futebol do mundo, e servem somente para ressaltar que o banco de dados Apache Cassandra é altamente distribuído, democrático, aceita falhas muito bem, e é superescalável. Para acessar a planilha, esse é o [link](https://docs.google.com/spreadsheets/d/1ly3WbZQmZigBavp0T6-Hm9ySTJjwmHWTIQrjsi1QiQI/edit?usp=sharing)\n\n\u003e copie esses dados dentro de um arquivo `selecao.csv`\n\n```\nnome,camisa,posicao\ndiego alves,1,goleiro\nhugo souza,45,goleiro\nmatheus cunha,51,goleiro\nrodrigo caio,3,zagueiro\ngustavo henrique,2,zagueiro\nleo pereira,4,zagueiro\ndavid luiz,23,zagueiro\nnoga,41,zagueiro\ncleiton,33,zagueiro\nfabricio bruno,15,zagueiro\npablo,30,zagueiro\nrodinei,22,laterais direito\nisla,44,laterais direito\nmatheuzinho,34,laterais direito\nrene,6,laterais esquerdo\nfilipe luis,16,laterais esquerdo\nramon,36,laterais esquerdo\nwillian arao,5,volante\nandreas,18,volante\nthiago maia,8,volante\njoao gomes,35,volante\neverton ribeiro,7,meias\ndiego,10,meias\nde arrascaeta,14,meias\nlazaro,13,meias\nmatheus franca,42,meias\ngabi gol,9,atacante\nvitinho,11,atacante\nbruno henrique,27,atacante\npedro,21,atacante\nmarinho,31,atacante\n```\n\n### Data Loader\n\nVamos usar a functionalidade do AstraDB para carregar os dados acima.\n\n\u003cimg src=\"images-pt-br/Screen Shot 2022-03-15 at 23.14.27.png\" /\u003e\n\nCom isso:\n\n- a tabela foi criada automaticamente\n- os dados foram carregados\n\nNota: você poderia criar e inserir elementos manualmente também.\n\n```\nCREATE TABLE demo.workshopdemojogadores (\n    posicao text,\n    nome text,\n    camisa int,\n    PRIMARY KEY (posicao, nome)\n)\n```\n\n# Pratica com Javascript/Node.js\n\n\u003e Vamos agora para o arquivo `index.js`, e vamos analisar os diversos trechos de codigo comentados la\n\n\u003e The DataStax Developers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatastaxdevs%2Fworkshop-cassandra-driver-nodejs-portugues/lists"}