Inicio rápido: Uso de Node.js para conectar y consultar datos en Azure Database for MySQL con la opción Servidor flexible
En este inicio rápido, se conectará a Azure Database for MySQL con servidor flexible mediante Node.js. Puede usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos de la base de datos en las plataformas Mac, Linux y Windows.
En este artículo se da por hecho que está familiarizado con el desarrollo mediante Node.js y que nunca ha usado Azure Database for MySQL con servidor flexible.
Requisitos previos
En este tutorial rápido se usan como punto de partida los recursos creados en una de estas guías:
- Inicio rápido: Creación de una instancia de Azure Database for MySQL con Azure Portal
- Inicio rápido: Creación de una instancia del Servidor flexible de Azure Database for MySQL mediante la CLI de Azure
Importante
Asegúrese de que se ha agregado la dirección IP desde la que se conecta las reglas de firewall del servidor mediante la Administración de reglas de firewall para Azure Database for MySQL: servidor flexible mediante Azure Portal o Administración de reglas de firewall para Azure Database for MySQL: servidor flexible mediante la CLI de Azure
Instalación de Node.js y el conector de MySQL
Dependiendo de la plataforma, siga las instrucciones de la sección apropiada para instalar Node.js. Use npm para instalar el paquete de mysql2 y sus dependencias en la carpeta de proyecto.
Visite la página de descargas de Node.js y luego seleccione la opción deseada de Windows Installer.
Cree una carpeta de proyecto local, como
nodejsmysql
.Abra el símbolo del sistema y luego cambie el directorio a la carpeta de proyecto, por ejemplo,
cd c:\nodejsmysql\
.Ejecute la herramienta NPM para instalar la biblioteca de mysql2 en la carpeta de proyecto.
cd c:\nodejsmysql\ "C:\Program Files\nodejs\npm" install mysql2 "C:\Program Files\nodejs\npm" list
Para comprobar la instalación, examine el texto de salida de
npm list
. El número de versión puede variar a medida que se publiquen nuevas revisiones.
Obtención de información sobre la conexión
Obtenga la información de conexión necesaria para conectarse a la instancia del Servidor flexible de Azure Database for MySQL. Necesitará el nombre completo del servidor y las credenciales de inicio de sesión.
- Inicie sesión en Azure Portal.
- En el menú izquierdo de Azure Portal, seleccione Todos los recursos y, luego, busque el servidor que ha creado, por ejemplo, mydemoserver.
- Seleccione el nombre del servidor.
- En el panel Información general del servidor, anote el nombre del servidor y el nombre de inicio de sesión del administrador del servidor. Si olvida la contraseña, puede restablecerla en este panel.
Ejecución de los ejemplos de código
- Pegue el código de JavaScript en nuevos archivos de texto y luego guárdelos en una carpeta de proyecto con la extensión .js (por ejemplo, C:\nodejsmysql\createtable.js o /home/username/nodejsmysql/createtable.js).
- Reemplace las opciones de configuración
host
,user
,password
ydatabase
del código por los valores especificados al crear el servidor flexible y la base de datos de MySQL. - Obtenga el certificado SSL: para usar conexiones cifradas con las aplicaciones cliente, deberá descargar el certificado SSL público, que también está disponible en la hoja Redes de Azure Portal, como se muestra en la captura de pantalla siguiente.
Guarde el archivo de certificado en la ubicación que prefiera.
- En la opción de configuración
ssl
, reemplace el nombre de archivoca-cert
por la ruta de acceso de este archivo local. Esto permitirá que la aplicación se conecten de forma segura a la base de datos a través de SSL. - Abra el símbolo del sistema o el shell de Bash y luego cambie el directorio a la carpeta de proyecto
cd nodejsmysql
. - Para ejecutar la aplicación, introduzca el comando node seguido del nombre de archivo, por ejemplo,
node createtable.js
. - En Windows, si la aplicación de nodo no está en la ruta de la variable de entorno, puede que deba usar la ruta de acceso completa para iniciar la aplicación nodo, como por ejemplo,
"C:\Program Files\nodejs\node.exe" createtable.js
Conexión, creación de una tabla e inserción de datos
Use el código siguiente para conectarse y cargar los datos mediante las instrucciones SQL CREATE TABLE e INSERT INTO.
El método mysql.createConnection() se usa para interactuar con la instancia de Azure Database for MySQL con servidor flexible. La función connect() se usa para establecer la conexión al servidor. La función query() se usa para ejecutar la consulta SQL en la base de datos MySQL.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else
{
console.log("Connection established.");
queryDatabase();
}
});
function queryDatabase()
{
conn.query('DROP TABLE IF EXISTS inventory;',
function (err, results, fields) {
if (err) throw err;
console.log('Dropped inventory table if existed.');
}
)
conn.query('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);',
function (err, results, fields) {
if (err) throw err;
console.log('Created inventory table.');
}
)
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['banana', 150],
function (err, results, fields) {
if (err) throw err;
else console.log('Inserted ' + results.affectedRows + ' row(s).');
}
)
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['orange', 250],
function (err, results, fields) {
if (err) throw err;
console.log('Inserted ' + results.affectedRows + ' row(s).');
}
)
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['apple', 100],
function (err, results, fields) {
if (err) throw err;
console.log('Inserted ' + results.affectedRows + ' row(s).');
}
)
conn.end(function (err) {
if (err) throw err;
else console.log('Done.')
});
};
Lectura de datos
Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT.
El método mysql.createConnection() se usa para interactuar con la instancia de Azure Database for MySQL con servidor flexible. El método connect() se usa para establecer la conexión al servidor. El método query() se usa para ejecutar la consulta SQL en la base de datos MySQL. La matriz de resultados se usa para almacenar los resultados de la consulta.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else {
console.log("Connection established.");
readData();
}
});
function readData(){
conn.query('SELECT * FROM inventory',
function (err, results, fields) {
if (err) throw err;
else console.log('Selected ' + results.length + ' row(s).');
for (i = 0; i < results.length; i++) {
console.log('Row: ' + JSON.stringify(results[i]));
}
console.log('Done.');
})
conn.end(
function (err) {
if (err) throw err;
else console.log('Closing connection.')
});
};
Actualización de datos
Use el código siguiente para conectarse y actualizar los datos mediante la instrucción SQL UPDATE.
El método mysql.createConnection() se usa para interactuar con la instancia de Azure Database for MySQL con servidor flexible. El método connect() se usa para establecer la conexión al servidor. El método query() se usa para ejecutar la consulta SQL en la base de datos MySQL.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else {
console.log("Connection established.");
updateData();
}
});
function updateData(){
conn.query('UPDATE inventory SET quantity = ? WHERE name = ?', [75, 'banana'],
function (err, results, fields) {
if (err) throw err;
else console.log('Updated ' + results.affectedRows + ' row(s).');
})
conn.end(
function (err) {
if (err) throw err;
else console.log('Done.')
});
};
Eliminación de datos
Use el código siguiente para conectarse y eliminar los datos mediante la instrucción SQL DELETE.
El método mysql.createConnection() se usa para interactuar con la instancia de Azure Database for MySQL con servidor flexible. El método connect() se usa para establecer la conexión al servidor. El método query() se usa para ejecutar la consulta SQL en la base de datos MySQL.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else {
console.log("Connection established.");
deleteData();
}
});
function deleteData(){
conn.query('DELETE FROM inventory WHERE name = ?', ['orange'],
function (err, results, fields) {
if (err) throw err;
else console.log('Deleted ' + results.affectedRows + ' row(s).');
})
conn.end(
function (err) {
if (err) throw err;
else console.log('Done.')
});
};
Limpieza de recursos
Para limpiar todos los recursos utilizados durante esta guía de inicio rápido, elimine el grupo de recursos con el siguiente comando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Contenido relacionado
- Conexión al servidor flexible de Azure Database for MySQL con conexiones cifradas
- Conceptos de conectividad y redes para Azure Database for MySQL: Servidor flexible
- Administración de reglas de firewall para Azure Database for MySQL: Servidor flexible mediante Azure Portal
- Creación y administración de redes virtuales para Azure Database for MySQL: Servidor flexible mediante Azure Portal