Aprenda como conectar o JavaScript a um banco de dados, um importante passo para o desenvolvimento backend com JavaScript.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Na aula de hoje, vou te mostrar como conectar o JavaScript a um banco de dados relacional, um procedimento essencial para trabalhar com programação back-end.
Vamos utilizar o Node.js para conectar o JavaScript a um banco de dados, criar e manipular tabelas e executar consultas SQL.
O objetivo é que você compreenda a estrutura básica de um banco de dados e saiba como usar o JavaScript para automatizar processos e interações que seriam feitos manualmente.
Então, faça o download do material disponível e venha comigo aprender como conectar JavaScript a um banco de dados SQL.
Vamos começar esta aula abrindo o VS Code e criando um arquivo chamado banco.db.
Dentro do VS Code, vamos utilizar uma extensão chamada SQLite Viewer, que permite visualizar os dados do banco de dados.
Após instalar a extensão, abra o terminal do VS Code e execute o comando npm init -y para inicializar um novo projeto Node.js. Isso criará um arquivo package.json com as configurações padrão.
Em seguida, instale os pacotes SQLite e SQLite3 no projeto, executando os comandos:
npm install sqlite3 e npm install sqlite.
Isso adicionará as dependências referentes ao SQLite e SQLite3 ao arquivo package.json. Além disso, adicione uma nova chave chamada type com o valor module.
{
"name": "javascriptebancodedados",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"sqlite": "^5.1.1",
"sqlite3": "^5.1.7"
},
"type": "module"
}
Isso permitirá uma escrita mais moderna do JavaScript, melhorando as funcionalidades e compatibilidades do código.
Com as configurações iniciais prontas, criaremos um arquivo chamado app.js onde manipularemos o banco de dados com JavaScript.
Dentro deste arquivo, importe o sqlite3 do pacote sqlite3 e a funcionalidade open do pacote sqlite.
import sqlite3 from "sqlite3";
import { open } from "sqlite";
Em seguida, vamos definir a função que criará uma tabela e registrará as informações nela.
Esta será uma função assíncrona que criará uma tabela de usuários e registrará o nome completo deles. Para isso, a função precisará receber como parâmetros o nome e sobrenome.
Dentro dessa função, criaremos um objeto (db) que representa a conexão com o banco de dados.
Esse objeto receberá a função open, que iniciará a conexão com o banco de dados. Dentro dessa função, definiremos o caminho do arquivo (filename) referente ao banco de dados e o driver a ser utilizado (driver).
Como o arquivo do banco de dados está na mesma pasta do código JavaScript, podemos passar o caminho dele como ./banco.db. O driver será o sqlite3.Database, a biblioteca responsável por realizar as operações no banco de dados.
Por padrão, essa é uma operação assíncrona, ou seja, o JavaScript começará a execução dela e liberará o processo para que outras etapas do código sejam executadas simultaneamente.
No entanto, todo o restante do nosso código depende da conexão bem-sucedida com o banco de dados. Então, utilizaremos a cláusula await antes da função open para que o código aguarde essa operação antes de continuar sua execução.
import sqlite3 from 'sqlite3';
import { open } from 'sqlite';
async function criarEPopularTabelaUsuarios(nome, sobrenome) {
const db = await open({
filename: './banco.db',
driver: sqlite3.Database,
});
Com a conexão já estabelecida, o próximo passo da nossa função será executar uma consulta SQL para criar uma tabela dentro do banco de dados. Faremos isso utilizando o método run.
Observação: Caso você nunca tenha tido contato com SQL, confira nosso Curso Básico Gratuito de SQL para entender melhor os comandos que serão utilizados nessa etapa.
Dentro do método run, passaremos o comando SQL para criar uma tabela chamada usuarios no nosso banco de dados, caso essa tabela não exista.
Para este comando, precisamos informar os campos que essa tabela terá (id, nome e sobrenome), seguidos do tipo de dado que cada um irá armazenar. Nesse caso, id será um número inteiro (integer), e nome e sobrenome serão do tipo texto (text).
import sqlite3 from 'sqlite3';
import { open } from 'sqlite';
async function criarEPopularTabelaUsuarios(nome, sobrenome) {
const db = await open({
filename: './banco.db',
driver: sqlite3.Database,
});
db.run(
`CREATE TABLE IF NOT EXISTS usuarios (id INTEGER PRIMARY KEY, nome TEXT, sobrenome TEXT)`
);
}
Além disso, observe que, para o id, além de definir o tipo como inteiro, também definimos que ele será uma Primary Key (chave primária), uma informação única utilizada para identificar os usuários na tabela.
Nossa função ainda não está completa, mas já podemos testá-la para verificar se a tabela está sendo criada corretamente dentro do banco de dados. Vamos criar uma chamada para essa função e executar nosso código.
import sqlite3 from "sqlite3";
import { open } from "sqlite";
async function criarEPopularTabelaUsuarios(nome, sobrenome) {
const db = await open({
filename: "./banco.db",
driver: sqlite3.Database,
});
db.run(
`CREATE TABLE IF NOT EXISTS usuarios (id INTEGER PRIMARY KEY, nome TEXT, sobrenome TEXT)`
);
}
criarEPopularTabelaUsuarios();
Após executar o código, clique no arquivo banco.db que criamos e você verá que dentro dele há uma tabela chamada usuarios.
Agora só precisamos implementar nossa função para, além de criar a tabela, registrar os usuários dentro dela.
Para registrar um usuário, vamos adicionar mais um método run dentro da nossa função, que executará a instrução INSERT INTO do SQL para inserir um novo usuário na tabela.
Para este comando, vamos informar o nome da tabela, especificar as colunas nas quais os dados serão inseridos (nome, sobrenome) e os valores (VALUES (?,?)).
Utilizaremos pontos de interrogação como marcadores de posição, que serão substituídos pelos valores reais fornecidos pelo array contendo o nome e o sobrenome. Essas duas variáveis serão obtidas como argumentos passados para a nossa função.
Como informamos no momento da criação que o id é um número inteiro responsável pela chave primária da tabela, não precisamos informar o id a cada criação de usuário, pois o próprio banco de dados fará a implementação correta do id.
import sqlite3 from 'sqlite3';
import { open } from 'sqlite';
async function criarEPopularTabelaUsuarios(nome, sobrenome) {
const db = await open({
filename: './banco.db',
driver: sqlite3.Database,
});
db.run(
`CREATE TABLE IF NOT EXISTS usuarios (id INTEGER PRIMARY KEY, nome TEXT, sobrenome TEXT)`
);
db.run(`INSERT INTO usuarios (nome, sobrenome) VALUES (?,?)`, [
nome,
sobrenome,
]);
}
Vamos executar novamente nosso código, mas agora passando como argumentos para a função um nome e sobrenome.
import sqlite3 from "sqlite3";
import { open } from "sqlite";
async function criarEPopularTabelaUsuarios(nome, sobrenome) {
const db = await open({
filename: "./banco.db",
driver: sqlite3.Database,
});
db.run(
`CREATE TABLE IF NOT EXISTS usuarios (id INTEGER PRIMARY KEY, nome TEXT, sobrenome TEXT)`
);
db.run(`INSERT INTO usuarios (nome, sobrenome) VALUES (?,?)`, [
nome,
sobrenome,
]);
}
criarEPopularTabelaUsuarios("Daniel", "Porto");
Verificando o banco de dados, teremos nosso primeiro usuário registrado.
Com isso, podemos interagir com o banco de dados utilizando JavaScript e registrar quantos usuários quisermos.
Da mesma forma que fizemos essas consultas com o banco de dados utilizando JavaScript, podemos realizar outras interações integrando os conhecimentos de JavaScript e SQL.
Nessa, você aprendeu como conectar o JavaScript a um banco de dados relacional, uma etapa essencial para trabalhar com programação back-end.
Vimos na prática como integrar as consultas SQL dentro do código JavaScript, definindo todo esse processo dentro de uma função que pode ser usada para otimizar e automatizar os trabalhos com bancos de dados.
Dessa forma, você será capaz de integrar seus conhecimentos em SQL com a programação em JavaScript para automatizar e gerenciar ainda mais etapas do seu banco de dados usando código JavaScript.
Quer se aprofundar ainda mais no universo do JavaScript? Inscreva-se no nosso Curso Online de JavaScript e domine as ferramentas necessárias para desenvolver projetos completos e interativos!
Para acessar publicações de JavaScript, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.