English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cuando se ejecuta una consulta MySQL en Node.js, un objeto llamado Result Object se devuelve al callback. Este objeto contiene un conjunto de resultados o propiedades que proporcionan información sobre la ejecución de la consulta en el servidor MySQL.
El contenido del objeto de resultado depende de la consulta SQL realizada al servidor MySQL. La siguiente tabla describe el objeto de resultado de la consulta, como selecciones, inserciones, actualizaciones y eliminaciones.
Consulta MySQL | Objeto de resultado |
SELECT FROM | Conjunto de resultados que contiene registros |
INSERT INTO | Objeto que contiene el estado de ejecución |
UPDATE | Objeto que contiene el estado de ejecución |
DELETE FROM | Objeto que contiene el estado de ejecución |
A continuación, con la ayuda de algunos ejemplos, entenderemos cómo acceder a las propiedades de los registros del conjunto de resultados y cómo acceder a las propiedades del estado de ejecución.
Consulta SELECT FROM MySQL – Acceder a ResultSet
Consulta INSERT INTO MySQL – Acceder a las propiedades del objeto de resultado
Consulta UPDATE MySQL-Acceder a las propiedades del objeto de resultado
Consulta DELETE FROM MySQL-Acceder a las propiedades del objeto de resultado
Podemos usar el operador de punto (.) para acceder a los registros del conjunto de resultados como atributos de un array y de un registro.
// Ejemplo de objeto de resultado MySQL en Node.js // Importar el módulo mysql var mysql = require('mysql'); // Crear una variable de conexión con la información detallada requerida var con = mysql.createConnection({ host: "localhost", // dirección IP del servidor que ejecuta MySQL usuario: "arjun", // nombre de usuario de la base de datos MySQL contraseña: "contraseña", // Contraseña correspondiente database: "studentsDB" // Usar la base de datos especificada }); // Establecer conexión con la base de datos con.connect(function(err) { if (err) throw err; // Si la conexión tiene éxito con.query("SELECT * FROM students", function (err, result, fields) { // Si ocurre algún error al ejecutar la consulta anterior, lanza el error if (err) throw err; // Si no hay errores, obtendrá los resultados // Iterar todas las filas del resultado Object.keys(result).forEach(function(key) { var row = result[key]; console.log(row.name) }); }); });
Ejecutar el programa anterior con el nodo en el terminal
Salida del terminal
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node selectUseResultObject.js John Arjun Prasanth Adarsh Raja Sai Ross Monica Lee Bruce Sukumar
Podemos usar el operador DOT (.) para acceder a las propiedades del objeto de resultados.
// Importar el módulo mysql var mysql = require('mysql'); // Crear una variable de conexión con la información detallada requerida var con = mysql.createConnection({ host: "localhost", // dirección IP del servidor que ejecuta MySQL usuario: "arjun", // nombre de usuario de la base de datos MySQL contraseña: "contraseña", // Contraseña correspondiente database: "studentsDB" // Usar la base de datos especificada }); // Establecer conexión con la base de datos con.connect(function(err) { if (err) throw err; // Si la conexión tiene éxito var records = [ ['Jack', 16, 82], ['Priya', 17, 88], ['Amy', 15, 74] ]; con.query("INSERT INTO students (name,rollno,marks) VALUES ?", [records], function(err, result, fields) { // Si ocurre algún error al ejecutar la consulta anterior, lanza el error if (err) throw err; // Si no hay errores, obtendrá los resultados console.log(result); console.log("Número de filas afectadas: ", + result.affectedRows); console.log("Número de registros afectados con advertencia: ", + result.warningCount); console.log("Mensaje del servidor MySQL: ", + result.message); }); });
Ejecutar el programa anterior con el nodo en el terminal
Salida del terminal
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node MultipleInsertExample.js OkPacket { fieldCount: 0, affectedRows: 3, insertId: 0, serverStatus: 2, warningCount: 0, mensaje: '&Records: 3 Duplicados: 0 Advertencias: 0', protocol41: true, changedRows: 0} Número de filas afectadas: 3 Número de registros afectados con advertencia: 0 Mensaje del servidor MySQL: &Records: 3 Duplicados: 0 Advertencias: 0
Podemos usar el operador DOT (.) para acceder a las propiedades del objeto de resultados.
// Importar el módulo mysql var mysql = require('mysql'); // Crear una variable de conexión con la información detallada requerida var con = mysql.createConnection({ host: "localhost", // dirección IP del servidor que ejecuta MySQL usuario: "arjun", // nombre de usuario de la base de datos MySQL contraseña: "contraseña", // Contraseña correspondiente database: "studentsDB" // Usar la base de datos especificada }); // Establecer conexión con la base de datos con.connect(function(err) { if (err) throw err; // Si la conexión tiene éxito con.query("UPDATE students SET marks=84 WHERE marks=74", function (err, result, fields) { // Si ocurre algún error al ejecutar la consulta anterior, lanza el error if (err) throw err; // Si no hay errores, obtendrá los resultados console.log(result); console.log("Número de filas afectadas: ", + result.affectedRows); console.log("Número de registros afectados con advertencia: ", + result.warningCount); console.log("Mensaje del servidor MySQL: ", + result.message); }); });
Ejecutar el programa anterior con el nodo en el terminal
Salida del terminal
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node UpdateRecordsFiltered.js OkPacket { fieldCount: 0, affectedRows: 3, insertId: 0, serverStatus: 34, warningCount: 0, mensaje: '(Filas coincidentes: 3 Cambiado: 3 Advertencias: 0', protocol41: true, changedRows: 3 } Número de filas afectadas: 3 Número de registros afectados con advertencia: 0 Mensaje del servidor MySQL: (Filas coincidentes: 3 Cambiado: 3 Advertencias: 0
Podemos usar el operador DOT (.) para acceder a las propiedades del objeto de resultados.
// Importar el módulo mysql var mysql = require('mysql'); // Crear una variable de conexión con la información detallada requerida var con = mysql.createConnection({ host: "localhost", // dirección IP del servidor que ejecuta MySQL usuario: "arjun", // nombre de usuario de la base de datos MySQL contraseña: "contraseña", // Contraseña correspondiente database: "studentsDB" // Usar la base de datos especificada }); // Conectar a la base de datos. con.connect(function(err) { if (err) throw err; // Si la conexión tiene éxito con.query("DELETE FROM students WHERE rollno>10", function (err, result, fields) { // Si ocurre algún error al ejecutar la consulta anterior, lanza el error if (err) throw err; // Si no hay errores, obtendrá los resultados console.log(result); console.log("Número de filas afectadas: ", + result.affectedRows); console.log("Número de registros afectados con advertencia: ", + result.warningCount); console.log("Mensaje del servidor MySQL: ", + result.message); }); });
Ejecutar el programa anterior con el nodo en el terminal
Salida del terminal
arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node deleteRecordsFiltered.js OkPacket { fieldCount: 0, affectedRows: 6, insertId: 0, serverStatus: 34, warningCount: 0, message: '', protocol41: true, changedRows: 0} Número de filas afectadas: 6 Número de registros afectados con advertencia: 0 Mensaje del servidor MySQL:
En esta lección de Node.js – Node.js MySQL – aprendimos a acceder a los registros del conjunto de resultados y accedimos a las propiedades del objeto de resultados que contiene información sobre la ejecución de la consulta mediante ejemplos.