Accediendo a MySQL con node.js

November 12th, 2010

Es muy extraño ver una aplicación node.js que no haga uso de una solución NoSQL, pero puede presentarse el caso de tener que acceder a una base de datos legacy y casi con seguridad esa DB sea MySQL, el estado de los modulos MySQL en node.js, es muy dispar, pero hay un proyecto liderado por Felix Geisendörfer al que vengo siguiendo desde hace un tiempo, es al que mas fe le tenia, mas que nada, porque cuenta con el patrocinio de Joyent que ha tomado a node.js como algo estratégico para su plan de negocios.

El modulo que estoy usando es node-mysql, el cual es una implementación del protocolo MySQL escrito 100% con node.js, la forma mas fácil de instalarlo es usando npm.

# Instalando node-mysql y sus dependencias vía npm
npm install mysql

El modulo aunque ya esta siendo usando por algunos en producción y las funcionas básicas ya están implementadas, no esta etiquetado como estable, así que hay que tener un poco de cuidado si se quiere hacer uso de el.

Pasemos al ejemplo, como se ve en el código a continuación, la primera parte se encarga de cargar el modulo y todo lo relacionado a la conexión a la DB, luego paso la consulta que quiero ejecutar haciendo uso de client.query y para terminar creo una función que se encargara de mostrar los resultado en la consola o tirar un mensaje de error si algo no va bien.

var Client = require('mysql').Client,
    client = new Client();  
	client.user = 'root';
	client.password = 'password';
	client.host='127.0.01';
	client.port='3306';
	client.database='Oranje'
	client.connect();

	client.query(
		'SELECT * FROM players WHERE name LIKE "Minke%"',
        function selectPlayers(err, results, fields) {
            if (err) {
                console.log("Error: " + err.message);
                throw err;
            }
            console.log("Number of rows: "+results.length);
            console.log(results);
            client.end();
        });

En la siguiente screenshot pueden ver la salida de datos en la consola.

Accediendo a MySQL con node.js

En github pueden encontrar mas información acerca del proyecto, ademas de la documentación.

Development , 6 responses

6 responses

Que versión de node estas usando? Siempre obtengo algún error que no me permite ejecutar este código..

November 18, 2010 17:24

Estoy usando la 0.2.4, que error te da?

November 18, 2010 23:48

No te tengo problemas con los query sobre MySQL.. los ejecuta…
pero el query Select no me muestra los datos de consola.. y no obtengo la data…
node v0.5.0-pre

March 21, 2011 21:00

Tambien esta http://nodejsdb.org/db-mysql

Es mas rapido (programado en C++) que una solucion pura JS, y forma parte de un esfuerzo de varios drivers para bases de datos relacionales, incluidos ya MySQL, Oracle, y Drizzle, y trabajando en PostgresSQL y MSSQL.

November 5, 2011 10:56

Buen dato Mariano, gracias por compartirlo.

November 5, 2011 19:10

El codigo contiene al menos dos pequeños errores:

1) El host deberia de ser 127.0.0.1 en lugar de 127.0.01
2) El metodo client.connect() esta deprecado a fecha de hoy, se puede eliminar.

June 11, 2012 15:54

Comment now!