Resumo : neste tutorial você aprenderá como inserir uma ou mais linhas em uma tabela da aplicação Node.js.
Este tutorial continua de onde o tutorial Conectando-se ao servidor MySQL a partir de um aplicativo Node.js parou.
Para inserir uma nova linha em uma tabela, siga estas etapas:
- Primeiro, conecte-se ao banco de dados MySQL.
- Segundo, execute uma
INSERT
instrução chamando oquery()
método em umconnection
objeto. - Terceiro, feche a conexão com o banco de dados.
Inserir uma linha em uma tabela
Crie um novo insert.js
arquivo no diretório do projeto e adicione o seguinte código ao arquivo para inserir uma nova linha na todos
tabela:
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,
});
connection.connect((err) => {
if (err) return console.error(err.message);
// insert statment
let sql = `INSERT INTO todos(title,completed)
VALUES('Learn how to insert a new row',true)`;
// execute the insert statment
connection.query(sql);
// close the database connection
connection.end();
});
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 um objeto de conexão com as informações fornecidas no .env
arquivo:
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 )
O .env
arquivo se parece com o seguinte:
DB_HOST=localhost
DB_PORT=3306
DB_USER=user
DB_PASSWORD=password
DB_NAME=todoapp
Linguagem de código: texto simples ( texto simples )
Observe que você precisa substituir o usuário e a senha pelos que você usa para se conectar ao servidor MySQL.
Terceiro, conecte-se ao servidor MySQL usando o connect()
método:
connection.connect((err) => {
if (err) return console.error(err.message);
// ...
});
Linguagem de código: JavaScript ( javascript )
Quarto, construa a insert
declaração:
let sql = `INSERT INTO todos(title,completed)
VALUES('Learn how to insert a new row',true)`;
Linguagem de código: JavaScript ( javascript )
Quinto, execute a INSERT
instrução usando o query()
método:
connection.query(sql);
Linguagem de código: JavaScript ( javascript )
Por fim, feche a conexão com o banco de dados:
connection.end();
Linguagem de código: JavaScript ( javascript )
Para executar o insert.js
programa, você usa o seguinte comando:
node --env-file .env insert.js
Linguagem de código: texto simples ( texto simples )
Verifique a inserção
Primeiro, conecte-se ao servidor MySQL:
mysql -u root -p
Linguagem de código: texto simples ( texto simples )
Segundo, recupere os dados da todos
tabela:
select * from todos;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----+-------------------------------+-----------+
| id | title | completed |
+----+-------------------------------+-----------+
| 1 | Learn how to insert a new row | 1 |
+----+-------------------------------+-----------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
A saída indica que o programa inseriu uma nova linha na todos
tabela com sucesso.
Inserindo uma linha e retornando o id inserido
Crie um novo arquivo insert_return.js
e adicione o seguinte código ao arquivo para inserir uma nova linha na todos
tabela e retornar o ID inserido:
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,
});
connection.connect((err) => {
if (err) return console.error(err.message);
// insert statment
let sql = `INSERT INTO todos(title,completed)
VALUES(?,?)`;
let todo = ['Insert a new row with placeholders', false];
// execute the insert statment
connection.query(sql, todo, (err, results, fields) => {
if (err) return console.error(err.message);
console.log('Todo Id:' + results.insertId);
});
// close the database connection
connection.end();
});
Linguagem de código: JavaScript ( javascript )
Como funciona.
Primeiro, construa a consulta que usa pontos de interrogação ( ?
) como espaços reservados:
let sql = `INSERT INTO todos(title,completed)
VALUES(?,?)`;
Linguagem de código: JavaScript ( javascript )
Segundo, execute a consulta e passe dados para ela no query()
método e exiba o ID inserido se a consulta for bem-sucedida:
connection.query(sql, todo, (err, results, fields) => {
if (err) return console.error(err.message);
console.log('Todo Id:' + results.insertId);
});
Linguagem de código: JavaScript ( javascript )
Execute o insert_return.js
arquivo:
node --env-file .env insert_return.js
Linguagem de código: texto simples ( texto simples )
Saída:
Todo Id:2
Linguagem de código: JavaScript ( javascript )
Insira várias linhas
Crie um novo arquivo chamado insert_multiple.js
e use o seguinte código para inserir várias linhas na todos
tabela:
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,
});
connection.connect((err) => {
if (err) return console.error(err.message);
// insert statment
let sql = 'INSERT INTO todos(title, completed) VALUES ?';
let todos = [
['Master Node.js MySQL', false],
['Build Node.js / MySQL App', true],
];
// execute the insert statment
connection.query(sql, [todos], (err, results, fields) => {
if (err) return console.error(err.message);
console.log(`Inserted Rows: ${results.affectedRows}`);
});
// close the database connection
connection.end();
});
Linguagem de código: JavaScript ( javascript )
Como funciona.
Primeiro, construa a INSERT
afirmação com um ponto de interrogação ( ?
):
let sql = `INSERT INTO todos(title, completed) VALUES ?`;
Linguagem de código: JavaScript ( javascript )
O ponto de interrogação (?) na INSERT
instrução representa dados de múltiplas linhas que virão de um array.
Segundo, prepare os dados para inserção:
let todos = [
['Master Node.js MySQL', false],
['Build Node.js / MySQL App', true],
];
Linguagem de código: JavaScript ( javascript )
Terceiro, execute a INSERT
instrução com os dados provenientes do todos
array:
connection.query(sql, [todos], (err, results, fields) => {
if (err) return console.error(err.message);
console.log('Row inserted:' + results.affectedRows);
});
Linguagem de código: JavaScript ( javascript )
Você pode acessar o número de linhas inseridas através da affectedRows
propriedade do objeto de resultados.
node --env-file .env insert_multiple.js
Linguagem de código: JavaScript ( javascript )
Saída:
Inserted Rows: 2
A saída indica que duas linhas foram inseridas.
Neste tutorial, você aprendeu como inserir uma ou mais linhas em uma tabela MySQL a partir de um programa Node.js.