Inserindo linhas em uma tabela do Node.js

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:

  1. Primeiro, conecte-se ao banco de dados MySQL.
  2. Segundo, execute uma INSERTinstrução chamando o query()método em um connectionobjeto.
  3. Terceiro, feche a conexão com o banco de dados.

Inserir uma linha em uma tabela

Crie um novo insert.jsarquivo no diretório do projeto e adicione o seguinte código ao arquivo para inserir uma nova linha na todostabela:

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 mysqlmó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 .envarquivo:

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 .envarquivo se parece com o seguinte:

DB_HOST=localhost
DB_PORT=3306
DB_USER=user
DB_PASSWORD=password
DB_NAME=todoappLinguagem 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 insertdeclaraçã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 INSERTinstruçã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.jsprograma, você usa o seguinte comando:

node --env-file .env insert.jsLinguagem de código:  texto simples  ( texto simples )

Verifique a inserção

Primeiro, conecte-se ao servidor MySQL:

mysql -u root -pLinguagem de código:  texto simples  ( texto simples )

Segundo, recupere os dados da todostabela:

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 todostabela com sucesso.

Inserindo uma linha e retornando o id inserido

Crie um novo arquivo insert_return.jse adicione o seguinte código ao arquivo para inserir uma nova linha na todostabela 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.jsarquivo:

node --env-file .env insert_return.jsLinguagem de código:  texto simples  ( texto simples )

Saída:

Todo Id:2Linguagem de código:  JavaScript  ( javascript )

Insira várias linhas

Crie um novo arquivo chamado insert_multiple.jse use o seguinte código para inserir várias linhas na todostabela:

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 INSERTafirmaçã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 INSERTinstruçã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 INSERTinstrução com os dados provenientes do todosarray:

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 affectedRowspropriedade do objeto de resultados.

node --env-file .env insert_multiple.jsLinguagem 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *