Resumo : neste tutorial, você aprenderá como criar uma nova tabela no banco de dados MySQL a partir de uma aplicação Node.js.
Este tutorial continua de onde parou a conexão com o servidor de banco de dados MySQL do tutorial Node.js.
Criando tabelas
Para criar uma tabela a partir do Node.js, siga estas etapas:
- Conecte-se ao servidor de banco de dados MySQL.
- Chame o
query()
método noconnection
objeto para executar umaCREATE TABLE
instrução. - Feche a conexão com o banco de dados.
Crie um novo arquivo chamado create_table.js
no diretório do projeto e adicione o seguinte código ao arquivo:
let mysql = require('mysql');
let connection = mysql.createConnection({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
});
// connect to the MySQL server
connection.connect((err) => {
if (err) return console.error(err.message);
const createTodosTable = `create table if not exists todos(
id int primary key auto_increment,
title varchar(255) not null,
completed bool not null default false
)`;
connection.query(createTodosTable, (err, results, fields) => {
if (err) return console.log(err.message);
});
// close the connection
connection.end((err) => {
if (err) return console.log(err.message);
});
});
Linguagem de código: JavaScript ( javascript )
Como funciona.
Primeiro, use o mysql
módulo para conectar-se ao servidor MySQL:
let mysql = require('mysql');
Linguagem de código: JavaScript ( javascript )
Segundo, crie uma conexão de banco de dados com os parâmetros provenientes do .env
arquivo de configuração:
let connection = mysql.createConnection({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
});
Linguagem de código: JavaScript ( javascript )
Aqui está o conteúdo do .env
arquivo:
DB_HOST=localhost
DB_PORT=3306
DB_USER=user
DB_PASSWORD=password
DB_NAME=todoapp
Terceiro, conecte-se ao servidor MySQL:
connection.end((err) => {
if (err) return console.log(err.message);
});
Linguagem de código: JavaScript ( javascript )
Se ocorrer um erro ao estabelecer uma conexão com o banco de dados, exiba a mensagem de erro.
Quarto, defina uma consulta SQL para criar uma tabela chamada todos. A todos
tabela possui três colunas:
id
é a chave primária de incremento automático .title
é o título da tarefa com comprimento máximo de 255.completed
é um valor booleano que indica o status do arquivotodo
. O padrão éfalse
.
const createTodosTable = `create table if not exists todos(
id int primary key auto_increment,
title varchar(255)not null,
completed bool not null default false
)`;
Linguagem de código: JavaScript ( javascript )
Quinto, execute a CREATE TABLE
instrução usando o query()
método:
connection.query(createTodosTable, function (err, results, fields) {
if (err) return console.log(err.message);
});
Linguagem de código: JavaScript ( javascript )
O query()
método aceita uma instrução SQL e um retorno de chamada. A função de retorno de chamada recebe três argumentos:
error
: armazena o erro detalhado se ocorreu um erro durante a execução da instrução.results
: contém os resultados da consulta.fields
: contém informações do campo de resultados, se houver.
Por fim, feche a conexão com o banco de dados:
// close the connection
connection.end(function (err) {
if (err) return console.log(err.message);
});
Linguagem de código: JavaScript ( javascript )
Para executar o programa que usa o .env
, você usa o seguinte comando:
node --env-file .env create_table.js
Linguagem de código: JavaScript ( javascript )
Verificando a criação da tabela
Primeiro, abra o prompt de comando no Windows ou Terminal em sistemas do tipo Unix e conecte-se ao servidor MySQL:
mysql -h host -u root -p todoapp;
Segundo, liste todas as tabelas do todoapp
banco de dados:
show tables;
Saída:
+-------------------+
| Tables_in_todoapp |
+-------------------+
| todos |
+-------------------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
Neste tutorial, você aprendeu como criar uma nova tabela em um banco de dados MySQL.