A maioria dos aplicativos do mundo real persistem dados em bancos de dados. Portanto, é importante saber como conectar seu aplicativo a um banco de dados e buscar dados dele.
MySQL é uma excelente escolha para um banco de dados. É fácil de usar, tem amplo suporte e é um dos bancos de dados relacionais mais populares.
Antes de você começar
Como você testará o código de conexão em um servidor MySQL local, precisará instalar um servidor MySQL primeiro. Depois de fazer isso, crie um banco de dados vazio e certifique-se de ter o nome de usuário e a senha em mãos.
Criar um aplicativo de nó
Em seu terminal, execute o seguinte comando para criar uma nova pasta para seu aplicativo de nó:
mkdir node-mysql
Navegue até o node-mysql pasta e inicialize-a usando npm:
cd node-mysql
npm init -y
Isso gerará um arquivo package.json que, entre outras configurações, conterá as dependências do seu projeto.
Conectar o nó ao MySQL
Existem várias maneiras de conectar seu aplicativo de nó ao MySQL. o mysql2 package é uma excelente escolha, que você pode instalar com um comando como este:
npm install mysql2
Para fazer a conexão, você precisa de vários valores, como host, porta, usuário, banco de dados e senha. Aqui está um exemplo que se conecta a um banco de dados chamado nodedb em um servidor MySQL instalado localmente.
const config = {
host: "localhost",
port: 3306,
database: "nodedb",
user: "root",
password: "********",
}
Isto é o configuração objeto você passará para o método de conexão como no programa abaixo.
const mysql = require("mysql2")const config = {
host: "localhost",
database: "db_name",
user: "mysql_username",
password: "mysql_password",
connectionLimit: 100,
}
const connection = mysql.createConnection(config)
connection.connect(function(err) {
if (err) throw(err);
console.log("Connected!");
});
Quando você passa os detalhes do banco de dados para o mysql.createConnection() método, você cria um objeto de conexão. O objeto de conexão permitirá que você execute transações como criar, excluir ou ler tabelas.
Por exemplo, o código a seguir cria uma tabela no banco de dados ao qual você se conecta.
connection.connect(function(err) {
if (err) throw err;
console.log("Connected!");let createUser = `CREATE TABLE users (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;
connection.query(createUser, function(err, results, fields) {
if (err) {
console.log(err.message);
}
});
});
Ao executá-lo, esta consulta criará uma nova tabela chamada usuários no banco de dados. A consulta usa uma sintaxe comum que você pode adaptar para criar um esquema de banco de dados MySQL que atenda às suas necessidades.
O programa de conexão acima funciona bem se você quiser fazer apenas uma única conexão. No entanto, ao fazer solicitações de conexão simultâneas, é melhor usar um pool de conexões.
Conectar o nó ao MySQL usando um pool de conexão
Abrir e fechar conexões pode se tornar caro, especialmente quando há muitas. O pool de conexões de banco de dados ajuda a reduzir esse custo mantendo um pool de conexões abertas. Quando uma solicitação é feita, o pool pode fornecer uma conexão aberta sob demanda.
Ao fazer isso, você economiza tempo porque não precisa abrir uma nova conexão toda vez.
Use o seguinte código para criar um pool de conexões no Node:
const mysql = require("mysql2");const config = {
host: "localhost",
database: "db_name",
user: "mysql_username",
password: "mysql_password",
connectionLimit: 100,
}
const pool = mysql.createPool(config);
pool.query("SELECT * FROM some_table", (err, data) => {
if (err) throw(err)
console.log(data);
});
Lembre-se de alterar os detalhes de configuração para corresponder ao seu próprio ambiente.
Conectando-se com segurança ao MySQL
A biblioteca mysql2 simplifica o processo de conexão de um aplicativo Node a um banco de dados MySQL. Você pode usar um único cliente ou um pool de conexões. No entanto, se você precisar fazer várias solicitações, é melhor usar um pool de conexões, pois é mais barato.
Conectar-se ao banco de dados é apenas o primeiro passo. Você também deve garantir que os dados armazenados no banco de dados sejam seguros. Afinal, o MySQL é um alvo popular para invasores. Existem alguns passos básicos que você pode seguir para proteger seu servidor de banco de dados MySQL. Defina uma senha de usuário forte, restrinja logins remotos e não conceda privilégios desnecessários.