Tag browsing: node.js

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 , 8 responses

nave, version manager para node.js

September 19th, 2010

node.js es un proyecto en constante evolución, permanentemente se liberan versiones nuevas y el manejo de las mismas puede volverse un tema molesto, para lidiar con este problema podemos usar nave, el cual nos permite instalar, remover y seleccionar que versión de node.js usar por default, un concepto muy familiar si han utilizado rvm en ruby.

Para instalar nave podemos usar npm

# Instalando nave y sus dependencias vía npm
npm install nave

A continuación podrán ver el listado de opciones de nave y un ejemplo de lo fácil que es cambiar entre versiones de node.js

set default node.js version using nave

Development 1 response

Mastering Node

September 1st, 2010

En el repo de TJ Holowaychuk ya se encuentra disponible el primer draft del ebook Mastering Node, el cual va cubrir todos los aspectos fundamentales de node.js, ademas de temas como testing, deployment y frameworks de desarrollo como Express, aunque al ser un proyecto comunitario y open source es posible que se puedan ir agregando nuevos tópicos en el futuro.

Mastering Node

Development , No response

Nodul.es, indice de modulos para node.js

August 30th, 2010

Nodul.es es un indice que agrupa todos los módulos disponibles para node.js, en el podemos buscar módulos por nombre, por autor o por categoría, pudiendo ver las dependencias de los mismos e instrucciones para la instalación.

Nodu.es - Modules by name

Nodul.es - Module details

Nodul.es nació dentro del Node Knockout, el mismo acaba de terminar y en este link pueden ver la lista de los demás proyectos presentados.

Development , , , No response

node.js snippets para Gedit

August 13th, 2010

Basándome en el bundle para Textmate creado por Tj Holowaychuk, modifique y adapte esta serie de snippets para Gedit que pueden bajar desde mi repo en github.

Download node.js snippets for Gedit.

Development , No response