Atualizado: 02/01/2025

Operações Básicas com Dados - Node.js

Todas as operações com dados se baseiam em comandos SQL. Vamos resumir as operações básicas com bancos de dados.

Criando um Banco de Dados

Vamos criar um banco de dados no servidor MySQL usando Node.js:

const mysql = require("mysql2");
 
const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "123456"
});
    
connection.query("CREATE DATABASE usersdb2", function(err, results) {
    if (err) console.log(err);
    else console.log("Banco de dados criado");
});
    
connection.end();

Neste caso, é criado o banco de dados usersdb2 usando o comando CREATE DATABASE.

Criando uma Tabela

Agora, vamos adicionar uma tabela ao banco de dados usersdb2 que acabamos de criar:

const mysql = require("mysql2");
  
const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "usersdb2",
    password: "123456"
});
    
const sql = `CREATE TABLE IF NOT EXISTS users(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    age INT NOT NULL
)`;
    
connection.query(sql, function(err, results) {
    if (err) console.log(err);
    else console.log("Tabela criada");
});
connection.end();

Para criar a tabela, usamos o comando CREATE TABLE, que cria a tabela users com três colunas: id, name e age.

Adicionando Dados

Para adicionar dados, usamos o comando SQL INSERT. Vamos adicionar uma linha à tabela users:

const mysql = require("mysql2");
  
const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "usersdb2",
    password: "123456"
});
    
const sql = `INSERT INTO users(name, age) VALUES('Sam', 31)`;
    
connection.query(sql, function(err, results) {
    if (err) console.log(err);
    console.log(results);
});
    
connection.end();

Aqui, é adicionada uma linha à tabela, onde a coluna name recebe o valor "Sam", e a coluna age recebe o valor 31. Com o parâmetro results na função de callback, podemos obter os resultados da operação. Por exemplo, no meu caso, a saída no console será a seguinte:

C:\node\mysqlapp> node app.js
ResultSetHeader {
    fieldCount: 0,
    affectedRows: 1,
    insertId: 1,
    info: '',
    serverStatus: 2,
    warningStatus: 0
}

Neste exemplo, podemos ver que é retornado um objeto, com várias propriedades importantes. Em primeiro lugar, affectedRows indica o número de linhas afetadas pela operação (neste caso, o número de linhas adicionadas), e insertId é o identificador (id) da linha adicionada. Portanto, se precisarmos obter o id da linha adicionada, podemos escrever assim:

connection.query(sql, function(err, results) {
    if (err) console.log(err);
    console.log(results.insertId);
});

Adicionando Múltiplos Valores

Agora, vamos adicionar vários valores de uma só vez:

const mysql = require("mysql2");
  
const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "usersdb2",
    password: "123456"
});
    
const users = [
    ["Bob", 22],
    ["Alice", 25],
    ["Kate", 28]
];
const sql = `INSERT INTO users(name, age) VALUES ?`;
    
connection.query(sql, [users], function(err, results) {
    if (err) console.log(err);
    console.log(results);
});
    
connection.end();

Ao adicionar múltiplos valores, no comando SQL após VALUES usamos um ponto de interrogação como placeholder.

E, ao adicionar com sucesso, a propriedade results.affectedRows indicará que três linhas foram adicionadas:

C:\node\mysqlapp> node app.js
ResultSetHeader {
    fieldCount: 0,
    affectedRows: 3,
    insertId: 3,
    info: 'Records: 3  Duplicates: 0  Warnings: 0',
    serverStatus: 2,
    warningStatus: 0
}

No entanto, neste caso, devemos ter em mente que não será possível obter os id de todas as linhas adicionadas.

Retornando Dados

Para retornar dados, usamos o comando SQL SELECT. Por exemplo, vamos retornar todos os dados da tabela users:

const mysql = require("mysql2");

const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "usersdb2",
    password: "123456"
});

const sql = `SELECT * FROM users`;

connection.query(sql, function(err, results) {
    if (err) console.log(err);
    console.log(results);
});

connection.end();

O objeto results na função de callback representará um array com os dados obtidos do banco de dados:

C:\node\mysqlapp> node app.js
[ TextRow { id: 1, name: 'Sam', age: 31 },
    TextRow { id: 2, name: 'Tom', age: 29 },
    TextRow { id: 3, name: 'Bob', age: 22 },
    TextRow { id: 4, name: 'Alice', age: 25 },
    TextRow { id: 5, name: 'Kate', age: 28 },
    TextRow { id: 6, name: 'Tim', age: 22 },
    TextRow { id: 7, name: 'Tom', age: 25 }]

Após obter esses dados, podemos trabalhar com eles como um array comum de objetos. Por exemplo, vamos exibir apenas o nome de cada usuário do banco de dados:

const mysql = require("mysql2");

const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "usersdb2",
    password: "123456"
});

const sql = "SELECT * FROM users";
connection.query(sql, function(err, results) {
    if (err) console.log(err);
    const users = results;
    for (let i = 0; i < users.length; i++) {
        console.log(users[i].name);
    }
});

connection.end();

A saída no console será:

C:\node\mysqlapp> node app.js
ResultSetHeader {
    fieldCount: 0,
    affectedRows: 2,
    insertId: 0,
    info: 'Rows matched: 2  Changed: 2  Warnings: 0',
    serverStatus: 34,
    warningStatus: 0,
    changedRows: 2 }

Com a propriedade affectedRows do objeto results, podemos verificar quantas linhas foram atualizadas.

Removendo Dados

Para remover dados, usamos o comando SQL DELETE:

const mysql = require("mysql2");

const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "usersdb2",
    password: "123456"
});

const sql = "DELETE FROM users WHERE name=?";
const data = ["Sam"]; // removendo usuários com o nome "Sam"
connection.query(sql, data, function(err, results) {
    if (err) console.log(err);
    console.log(results);
});

connection.end();

A saída no console será:

C:\node\mysqlapp> node app.js
ResultSetHeader {
    fieldCount: 0,
    affectedRows: 1,
    insertId: 0,
    info: '',
    serverStatus: 34,
    warningStatus: 0 }

Com isso, o usuário com o nome "Sam" será removido da tabela users.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com